Referensi di Inspector
Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 29 dari 67.
Sebuah field dapat menyimpan object lain. Beri field itu tipe seperti Transform atau GameObject, lalu Inspector menampilkan slot kosong yang bisa kamu isi dengan menyeret object dari Hierarchy ke slot tersebut. Skrip kamera ini mengikuti object yang diseret ke player, dengan posisi 3 unit di atasnya dan 6 unit di belakangnya:
public Transform player;
void Update()
{
transform.position = player.position + new Vector3(0, 3, -6);
}Slot yang dibiarkan kosong menampilkan Tidak ada, dan baris pertama yang menggunakannya akan memunculkan error pada setiap frame: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. Baris berikutnya pada pesan tersebut menjelaskan apa yang perlu dilakukan: You probably need to assign the player variable of the CameraFollow script in the inspector. Pesan itu menyebutkan field dan skripnya, sehingga kamu tahu slot mana yang perlu diisi.
Beberapa skrip seharusnya tetap berfungsi meskipun slotnya kosong. Unity membuat slot kosong dianggap sama dengan null, jadi skrip seperti itu memeriksanya sebelum digunakan. Dengan if (player != null) mengelilingi baris di Update(), kamera yang tidak memiliki player akan tetap berada di tempatnya dan tidak memunculkan error.
Tantangan
SedangSetiap penjaga berjalan menuju posnya masing-masing. Di scene, Inspector milik Guard1 menempatkan object Post1 di field bernama post. Pos Guard2 belum dibuat, jadi slot post-nya kosong.
- Beri script Guard field
Transformbernamapost. - Penjaga berjalan menuju posisi posnya dengan kecepatan
speedunit per detik dan berhenti di sana, meskipun posnya dipindahkan nanti. - Penjaga yang slot posnya kosong tetap berada di tempatnya tanpa error.
Tekan Play, pilih setiap penjaga di Hierarchy untuk melihat slot Post-nya, lalu tekan Check.
Coba sendiri
using UnityEngine;
public class Guard : MonoBehaviour
{
// post: Transform yang dituju penjaga ini, diatur di Inspector
public float speed = 2f;
void Update()
{
// Berjalan ke post dengan kecepatan speed. Penjaga dengan slot post kosong tetap di tempat.
}
}
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 Mengorbit6GameObject dan Komponen
Referensi di InspectorMendapatkan KomponenKomponen yang HilangMenambahkan KomponenRequireComponentTampilkan dan SembunyikanRangkuman: Sakelar Lampu