Menu
CoddyTech

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 null dan 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.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar Scripting Unity