Integrasi Animasi
Teks yang kaya

Tata letak otomatis

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.

Memahami Elemen Tata Letak

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:

  • Lebar minimum
  • Tinggi minimum
  • Lebar yang disukai
  • Tinggi yang disukai
  • Lebar fleksibel
  • Tinggi fleksibel

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:

  • Ukuran minimum pertama dialokasikan.
  • Jika ada ruang yang cukup tersedia, ukuran yang disukai dialokasikan.
  • Jika ada ruang tambahan yang tersedia, ukuran fleksibel dialokasikan.

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.

Komponen Elemen Tata Letak

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.

Memahami Pengendali Tata Letak

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 Fitter

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.

Aspect Rasio Fitter

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.

Layout Groups

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.

Didorong properti Rect Transform

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.

Detail teknis

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.

Antarmuka Tata Letak

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.

Perhitungan Layout

Sistem tata letak otomatis mengevaluasi dan melaksanakan tata letak dalam urutan berikut:

  1. Minimal, disukai, dan lebar elemen tata letak yang fleksibel dihitung dengan memanggil HitungInputHorizontal pada komponen ILayoutElement. Ini dilakukan dalam urutan bawah, di mana anak-anak dihitung sebelum orang tua mereka, seperti orang tua mungkin mengambil informasi pada anak-anak mereka ke dalam perhitungan mereka sendiri.
  2. Lebar efektif elemen tata letak dihitung dan ditetapkan dengan memanggil SetLayoutHorizontal pada komponen ILayoutController. Ini dilakukan dalam urutan atas, di mana anak-anak dihitung setelah orang tua mereka, karena alokasi lebar anak perlu didasarkan pada lebar penuh yang tersedia di orang tua. Setelah langkah ini perubahan elemen tata letak memiliki lebar baru mereka.
  3. Tinggi elemen tata letak minimum, disukai, dan fleksibel dihitung dengan memanggil HitungInputVertik pada komponen ILayoutElement. Ini dilakukan dalam urutan bawah, di mana anak-anak dihitung sebelum orang tua mereka, seperti orang tua mungkin mengambil informasi pada anak-anak mereka ke dalam perhitungan mereka sendiri.
  4. Tinggi efektif elemen tata letak dihitung dan ditetapkan dengan memanggil SetLayoutVertik pada komponen ILayoutController. Ini dilakukan dalam urutan atas, di mana anak-anak dihitung setelah orang tua mereka, karena alokasi ketinggian anak perlu didasarkan pada ketinggian penuh yang tersedia di orang tua. Setelah langkah ini perubahan elemen tata letak memiliki ketinggian baru mereka.

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.

Pemicu Rebuild

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:

  • Dalam setters untuk properti yang dapat mengubah tata letak.
  • Dalam panggilan ini:
  • OnEnable
  • OnDisable
  • Sitemap Login
  • OnValidate (hanya diperlukan dalam editor, bukan pada runtime)
  • Login Login
Integrasi Animasi
Teks yang kaya