Referensi Lebih Baik daripada Find
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 45 dari 67.
Sebuah script dapat mengakses object lain dengan empat cara: field yang ditetapkan di Inspector, GameObject.Find berdasarkan nama, pencarian tag, atau FindAnyObjectByType berdasarkan tipe. Untuk object yang sudah ada di scene sejak awal, kode Unity menggunakan field Inspector, karena tiga alasan:
- Kecepatan. Referensi diisi sebelum game dimulai. Setiap pencarian menelusuri object dalam scene, dan pencarian di
Update()melakukannya pada setiap frame. - Keamanan. Nama dalam string tidak lagi cocok saat seseorang mengganti nama object: Find mengembalikan
nulldan error muncul kemudian, pada baris mana pun yang menggunakannya. Field Inspector yang kosong menyebabkan UnassignedReferenceException, yang menyebutkan nama field dan script. - Kejelasan. Inspector menunjukkan dependensi sebuah script. 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 bernilai null setelah nama pintu diubah
void Update()
{
Transform d = GameObject.Find("Door").transform;
}Pencarian berguna untuk object yang baru ada saat game berjalan, seperti object yang dibuat saat bermain, dan script yang harus berfungsi di scene mana pun. Meski begitu, lakukan pencarian sekali di Start() dan simpan hasilnya dalam 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
1Skrip Pertamamu
Halo, UnityLetakkan KubusBergerak di Setiap FrameBerputar Setiap DetikKendalikan dengan TombolRingkasan: Kendarai Kubus4Vektor
Menjumlahkan VektorArahRuang Lokal dan DuniaKecepatan DiagonalJarak antara BendaVector3 adalah StructRingkasan: Pilot Drone7Proyek: Tangkap Bintang
Si PenangkapBintang Jatuh5Transformasi dan Hierarki
Objek Induk dan AnakSkalaMenghadap ke ObjekBergerak Menuju TitikRangkuman: Bulan yang Mengorbit8Menemukan Sesuatu
Cari berdasarkan NamaTagCari berdasarkan TipeReferensi Lebih Baik daripada FindNull di UnityRangkuman: Koin Terdekat6GameObject dan Komponen
Referensi di InspectorMendapatkan KomponenKomponen yang HilangMenambahkan KomponenRequireComponentTampilkan dan SembunyikanRangkuman: Sakelar Lampu