Sistem tata letak Rect Transform cukup fleksibel untuk menangani berbagai jenis tata letak dan juga memungkinkan menempatkan elemen dalam mode bentuk gratis lengkap. Namun, kadang-kadang sesuatu yang sedikit lebih terstruktur dapat diperlukan.
Sistem tata letak otomatis menyediakan cara untuk menempatkan elemen dalam kelompok tata letak bersarang seperti kelompok horisontal, kelompok vertikal, atau grid. Hal ini juga memungkinkan elemen untuk secara otomatis berukuran sesuai dengan konten yang terkandung. Sebagai contoh tombol dapat direalisasikan secara dinamis sesuai dengan konten teks plus beberapa padding.
Sistem tata letak otomatis adalah sistem yang dibangun di atas sistem tata letak Rect Transform dasar. Ini dapat secara opsional digunakan pada beberapa atau semua elemen.
Sistem tata letak otomatis didasarkan pada konsep layout elements dan layout controllers. Elemen tata letak adalah objek permainan dengan Transformator Rect dan komponen lain opsional juga. Elemen tata letak memiliki pengetahuan tertentu tentang ukuran mana yang harus dimiliki. Elemen tata letak tidak langsung mengatur ukuran mereka sendiri, tetapi komponen lain yang berfungsi sebagai pengontrol tata letak dapat menggunakan informasi yang mereka berikan untuk menghitung ukuran untuk digunakan untuk mereka.
Elemen tata letak memiliki sifat yang menentukan sendiri:
Contoh komponen pengontrol tata letak yang menggunakan informasi yang disediakan oleh elemen tata letak adalah komponen Content Size Fitter dan berbagai komponen Layout Group. Prinsip dasar untuk bagaimana elemen tata letak dalam kelompok tata letak berukuran adalah sebagai berikut:
Setiap Game Object dengan Transformator Rect di dalamnya dapat berfungsi sebagai elemen tata letak. Mereka akan secara default memiliki ukuran minimum, disukai, dan fleksibel 0. Komponen tertentu akan mengubah sifat tata letak ini ketika ditambahkan ke objek Game.
Komponen Gambar dan Teks adalah dua contoh komponen yang menyediakan sifat elemen tata letak. Mereka mengubah lebar dan tinggi yang disukai untuk mencocokkan konten spriteObjek grafis 2D. Jika Anda digunakan untuk bekerja di 3D, Sprites pada dasarnya hanya tekstur standar tetapi ada teknik khusus untuk menggabungkan dan mengelola tekstur sprite untuk efisiensi dan kenyamanan selama perkembangan. More info
Lihat di Glossary atau teks.
Jika Anda ingin menimpa ukuran minimum, disukai, atau fleksibel, Anda dapat melakukannya dengan menambahkan komponen Elemen Tata Letak ke Objek Game.
Komponen Elemen Tata Letak memungkinkan Anda menimpa nilai untuk satu atau lebih dari sifat tata letak. Aktifkan kotak centang untuk properti yang ingin Anda tumpahkan dan kemudian tentukan nilai yang ingin Anda tumpahkan.
Lihat halaman referensi untuk Elemen Tata Letak untuk informasi lebih lanjut.
Pengontrol tata letak adalah komponen yang mengontrol ukuran dan kemungkinan posisi satu atau lebih elemen tata letak, yang berarti Objek Permainan dengan Transforms Rect. Pengontrol tata letak dapat mengontrol own layout element (objek Game yang sama itu sendiri) atau dapat mengontrol child layout elements.
Komponen yang berfungsi sebagai pengontrol tata letak juga dapat berfungsi sebagai elemen tata letak pada saat yang sama.
Ukuran Konten Fungsi Fitter sebagai pengontrol tata letak yang mengontrol ukuran elemen tata letaknya sendiri. Cara paling sederhana untuk melihat sistem tata letak otomatis dalam tindakan adalah untuk menambahkan komponen Fitter Ukuran Konten ke Objek Permainan dengan komponen Teks.
Jika Anda mengatur Horizontal Fit atau Vertical Fit untuk Preferred, Transform Rect akan menyesuaikan lebar dan / atau tinggi untuk menyesuaikan konten Teks.
Lihat halaman referensi untuk Ukuran Konten Fitter untuk informasi lebih lanjut.
Fungsi Fitter Aspect RatioHubungan dimensi proporsional gambar, seperti lebar dan tingginya.
Lihat di Glossary sebagai pengontrol tata letak yang mengontrol ukuran elemen tata letaknya sendiri.
Ini dapat menyesuaikan ketinggian agar sesuai dengan lebar atau sebaliknya, atau dapat membuat elemen cocok di dalam induk atau amplop induknya. Rasio Aspect Fitter tidak mengambil informasi tata letak ke akun seperti ukuran minimum dan ukuran yang disukai.
Lihat halaman referensi untuk Aspect Rasio Fitter untuk informasi lebih lanjut.
Kelompok tata letak berfungsi sebagai pengontrol tata letak yang mengontrol ukuran dan posisi elemen tata letak anaknya. Misalnya, Grup Tata Letak Horizontal menempatkan anak-anaknya di samping satu sama lain, dan Grup Tata Letak Grid menempatkan anak-anaknya di grid.
Kelompok tata letak tidak mengontrol ukurannya sendiri. Alih-alih berfungsi sebagai elemen tata letak sendiri yang dapat dikontrol oleh pengontrol tata letak lain atau diatur secara manual.
Ukuran apa pun kelompok tata letak dialokasikan, itu akan dalam kebanyakan kasus mencoba untuk mengalokasikan jumlah ruang yang tepat untuk masing-masing elemen tata letak anak berdasarkan ukuran minimum, disukai, dan fleksibel yang dilaporkan. Kelompok tata letak juga bisa bersarang sewenang-wenang cara ini.
Lihat halaman referensi untuk Grup Tata letak horisontal, Grup Tata Letak Vertikal dan Grid Layout Group untuk informasi lebih lanjut.
Karena pengontrol tata letak di sistem tata letak otomatis dapat secara otomatis mengontrol ukuran dan penempatan elemen UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary tertentu, ukuran dan posisi tersebut tidak boleh diedit secara manual pada saat yang sama melalui tampilan InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary atau SceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary. Nilai perubahan seperti itu hanya akan mendapatkan reset oleh pengontrol tata letak di perhitungan tata letak berikutnya.
The Rect Transform memiliki konsep driven properties untuk mengatasi ini. Sebagai contoh, Fitter Ukuran Konten yang memiliki properti Horizontal Fit ditetapkan ke Minimum atau Preferred akan menggerakkan lebar Transformator Rect pada Objek Game yang sama. Lebar akan muncul sebagai kotak baca dan info kecil di bagian atas Transform Rect akan menginformasikan bahwa satu atau lebih properti didorong oleh Conten Size Fitter.
Sifat Transforms Rect yang digerakkan memiliki alasan lain selain mencegah pengeditan manual. Tata letak dapat diubah hanya dengan mengubah resolusi atau ukuran Game View. Ini pada gilirannya dapat mengubah ukuran atau penempatan elemen tata letak, yang mengubah nilai-nilai sifat yang digerakkan. Tapi itu tidak akan diinginkan bahwa Adegan ditandai sebagai memiliki perubahan yang tidak disadari hanya karena Game View dibalikkan. Untuk mencegah ini, nilai-nilai sifat yang digerakkan tidak disimpan sebagai bagian dari Adegan dan perubahan pada mereka tidak menandai adegan seperti berubah.
Sistem tata letak otomatis dilengkapi dengan komponen tertentu yang dibangun, tetapi juga dimungkinkan untuk membuat komponen baru yang mengontrol tata letak dengan cara kustom. Ini dilakukan dengan memiliki komponen menerapkan antarmuka tertentu yang diakui oleh sistem tata letak otomatis.
Komponen diperlakukan sebagai elemen tata letak oleh sistem tata letak otomatis jika mengimplementasikan antarmuka ILayoutElement.
Komponen ini diharapkan untuk menggerakkan Transforms Rect anak-anaknya jika mengimplementasikan antarmuka ILayoutGroup.
Sebuah komponen diharapkan untuk menggerakkan RectTransform sendiri jika mengimplementasikan antarmuka ILayoutSelfController.
Sistem tata letak otomatis mengevaluasi dan melaksanakan tata letak dalam urutan berikut:
Seperti yang dapat dilihat dari di atas, sistem tata letak otomatis mengevaluasi lebar terlebih dahulu dan kemudian mengevaluasi ketinggian setelahnya. Dengan demikian, tinggi yang dihitung dapat tergantung pada lebar, tetapi lebar yang dihitung tidak dapat tergantung pada ketinggian.
Ketika properti pada perubahan komponen yang dapat menyebabkan tata letak saat ini tidak lagi valid, rekalkulasi tata letak diperlukan. Ini dapat dipicu menggunakan panggilan:
LayoutRebuilder.MarkLayoutForRebuild (transform sebagai RectTransform);
Membangun kembali tidak akan terjadi segera, tetapi pada akhir bingkai saat ini, hanya sebelum rendering terjadi. Alasan tidak segera adalah bahwa ini akan menyebabkan tata letak untuk berpotensi membangun kembali banyak kali selama bingkai yang sama, yang akan buruk untuk kinerja.
Panduan untuk ketika membangun kembali harus dipicu: