Referensi Lebih Baik daripada Find
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 59 dari 85.
Sebuah skrip dapat mengakses objek lain melalui empat cara: field yang ditetapkan di Inspector, GameObject.Find berdasarkan nama, pencarian tag, atau FindAnyObjectByType berdasarkan tipe. Untuk objek yang sudah ada di scene sejak awal, kode Unity menggunakan field Inspector karena tiga alasan:
- Kecepatan. Referensi sudah diisi sebelum game dimulai. Setiap pencarian menelusuri objek-objek di scene, dan pencarian di
Update()melakukannya pada setiap frame. - Keamanan. Nama dalam string menjadi bermasalah saat seseorang mengganti nama objek: Find mengembalikan
nulldan error muncul belakangan, pada baris mana pun yang menggunakannya. Field Inspector yang kosong menimbulkan UnassignedReferenceException, yang menyebutkan nama field dan skrip. - Kejelasan. Inspector menunjukkan hal-hal yang menjadi dependensi skrip. Pemanggilan Find menyembunyikannya di dalam kode.
// atur sekali di Inspector: tidak perlu mencari, dan mengganti nama tidak mengubah apa pun
[SerializeField] private Transform door;
// dicari pada setiap frame, lalu menjadi null setelah nama pintu diubah
void Update()
{
Transform d = GameObject.Find("Door").transform;
}Pencarian tetap berguna untuk objek yang baru ada saat game berjalan, seperti objek yang dibuat saat bermain, dan skrip yang harus berfungsi di scene mana pun. Meski begitu, lakukan pencarian sekali di Start(), lalu simpan hasilnya di field.
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar Scripting Unity
1Dasar-Dasar C# di Unity
Halo, UnityVariabelDesimal Memerlukan fTeks di ConsoleVariabel yang Menyimpan NilaiIf dan ElseBandingkan AngkaUlasan: Pengumpul Koin7Perulangan dan method
Ulangi dengan forPerulangan di dalam perulanganTulis methodMethod yang Mengembalikan NilaiarrayUlasan: Tangga10Menemukan Benda
Cari Berdasarkan NamaTagCari Berdasarkan TipeReferensi Lebih Baik daripada FindNull di UnityRangkuman: Koin Terdekat13Proyek: Hindari Balok
Karakter PelariBalok dari Langit2Buat Bergerak
Tempatkan KubusBergerak Setiap FrameBerputar Setiap DetikKemudikan dengan TombolRangkuman: Kemudikan Kubus5Vektor
Menjumlahkan VektorArahRuang Lokal dan DuniaKecepatan DiagonalJarak AntarobjekVector3 adalah StructRangkuman: Pilot Drone8GameObjects dan Komponen
Referensi di InspectorAmbil KomponenKomponen yang HilangTambahkan KomponenRequireComponentTampilkan dan SembunyikanRingkasan: Sakelar Lampu6Transformasi dan Hierarki
Objek Induk dan AnakKibarkan BenderaSkalaMelihat BendaBergerak Menuju TitikRekap: Bulan yang MengorbitLatihan sendiri: Playground Unity