Menu
CoddyTech

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

quiz iconUji dirimu

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

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity