Jika orientasi kerangka aplikasi Anda tidak cocok dengan orientasi tampilan asli perangkat (portrait, untuk sebagian besar perangkat), Android memutar kerangka aplikasi untuk mencocokkan tampilan perangkat setiap bingkai. Tergantung pada kemampuan perangkat keras, rotasi tambahan ini dapat mempengaruhi kinerja secara negatif. Jika aplikasi Anda menggunakan API documentation dan perangkat mendukung Vulkan, Unity dapat menerapkan rotasi ini selama rendering yang mengurangi dampak kinerja rotasi. Ini disebutpra-rotasi.
Untuk membuat Unity menerapkan pra-rotasi, Anda dapat menggunakan C # scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary atau editor Unity:
Melalui skrip C#: Set PemainPengaturan.vulkanEnablePreTransform untuk true
.
Melalui Editor Unity:
Di jendela pengaturan Proyek, pilih tab Player, lalu buka Pengaturan Pemain Android:
Pada bagian Other Settings, aktifkan Apply display rotation during rendering.
Unity menerapkan pra-rotasi ketika render langsung ke backbuffer perangkat, bukan ketika render ke Render TeksturJenis Tekstur khusus yang diciptakan dan diperbarui pada runtime. Untuk menggunakannya, pertama membuat Tekstur Render baru dan menunjuk salah satu Kamera Anda untuk membuatnya. Kemudian Anda dapat menggunakan Tekstur Render dalam Bahan seperti Tekstur biasa. More info
Lihat di Glossary. Untuk menerapkan rotasi, Unity memodifikasi matriks proyeksi yang mempengaruhi UNITY_MATRIX_MVP
dan UNITY_MATRIX_P
Variabel naungan internal. Ini berarti bahwa Unity menerapkan rotasi di vertex shaderProgram yang berjalan di GPU. More info
Lihat di Glossary.
Menggunakan pra-rotasi tidak mempengaruhi perilaku C # API Unity. Misalnya, Anda masih dapat menggunakan Screen.width
untuk mengakses lebar layar. Hal yang sama berlaku untuk viewportsArea tampilan pengguna aplikasi di layar mereka.
Lihat di Glossary dan gunting rects. Unity menyesuaikan ini sesuai kebutuhan, dan juga menangani operasi membaca dari backbuffer seperti Grab Pass, BacaPixel, atau Screenshot.
Unity menyediakan makro utilitas untuk menangani kasus khusus di naungan (untuk informasi lebih lanjut, lihat bagian Limitations di bawah).
makro UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTASI hanya didefinisikan jika semua kondisi berikut benar (jika tidak, tidak ditentukan):
preTransform
diaktifkan dalam Pengaturan PemainUNITY_DISPLAY_ORIENTATION_PRETRANSFORM adalah konstan yang diatur ke rotasi preTransform
saat ini. Nilainya adalah salah satu berikut:
Jika UNITY_PRETRANSFORM_TO_DISPLAY_ORIENTATION tidak ditentukan, atau ketika membuat Tekstur Render, nilai UNITY_DISPLAY_ORIENTATION_PRETRANSFORM adalah UNITY_DISPLAY_ORIENTATION_0.
UNITY_DISPLAY_ORIENTATION_PRETRANSFORM diterjemahkan ke dalam konstanta spesialisasi Vulkan, yang membuatnya efisien untuk digunakan jika atau mengubah pernyataan.
Dalam kasus berikut, kemungkinannya yang memungkinkan preTransform membutuhkan modifikasi tambahan untuk Proyek Unity Anda sebelum Anda dapat menggunakannya:
SV_Position
)Kasus-kasus ini hanya berlaku ketika rendering langsung ke backbuffer.