Menu
CoddyTech

Referensi di Inspector

Termasuk bagian Dasar-Dasar Scripting Unity dalam perjalanan Unity di Coddy. Pelajaran 43 dari 85.

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. Script kamera ini mengikuti object yang diseret ke player, dengan posisi tetap 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 None, dan baris pertama yang menggunakannya akan memunculkan error di setiap frame: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. Baris berikutnya pada pesan itu menjelaskan tindakan yang perlu dilakukan: You probably need to assign the player variable of the CameraFollow script in the inspector. Pesan itu menyebutkan field dan script-nya, jadi kamu tahu slot mana yang harus diisi.

Beberapa script sebaiknya tetap berfungsi meskipun slotnya kosong. Unity membuat slot kosong dianggap sama dengan null, jadi script seperti itu memeriksanya sebelum digunakan. Dengan if (player != null) di sekitar baris dalam Update(), kamera tanpa player akan tetap berada di tempatnya dan tidak memunculkan error.

challenge icon

Tantangan

Sedang

Kirim setiap guard ke pos yang ditentukan Inspector untuknya.

  1. Tambahkan field public Transform post;. Slot Guard1 berisi Post1, sedangkan slot Guard2 kosong.
  2. Di Update(), jika post == null, jalankan return; agar guard tanpa pos tetap di tempat.
  3. Lalu gerakkan dengan Vector3.MoveTowards(transform.position, post.position, speed * Time.deltaTime).

Tekan tombol “Main”: Guard1 berjalan ke posnya dan Guard2 menunggu. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

public class Guard : MonoBehaviour
{
    // post: Transform yang dituju penjaga ini, atur di Inspector
    public float speed = 2f;

    void Update()
    {
        // Berjalanlah menuju post dengan kecepatan speed. Penjaga dengan slot post kosong tetap di tempat.
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity