Menu
CoddyTech

Cari Berdasarkan Nama

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

GameObject.Find("Player") mencari objek aktif dengan nama yang persis sama di scene, lalu mengembalikannya, atau null jika tidak ada. Cara ini menghindari pengaturan field di Inspector, tetapi ada konsekuensinya: metode ini memeriksa setiap objek di scene. Jadi, panggil metode ini sekali saja, di Start(), lalu simpan hasilnya di sebuah field. Kamera keamanan ini mencari Player saat game dimulai dan mengawasinya pada setiap frame:

private Transform player;

void Start()
{
    player = GameObject.Find("Player").transform;
}

void Update()
{
    transform.LookAt(player);
}

Namanya harus sama persis, termasuk huruf kapital dan spasi: "player" atau "Player " tidak akan menemukan apa pun. Find juga melewati objek yang tidak aktif (tersembunyi). Pencarian yang gagal mengembalikan null tanpa pesan, dan error muncul pada baris berikutnya yang menggunakan hasil tersebut: di sini, .transform memunculkan NullReferenceException. Jalur seperti "Car/Wheel" menemukan Wheel yang merupakan anak dari Car.

challenge icon

Tantangan

Sedang

Rover melaporkan seberapa jauh jarak tujuannya.

  1. Di Start(), tetapkan goal = GameObject.Find("Goal").transform;.
  2. Di Update(), saat Input.GetKeyDown(KeyCode.Space), catat "Distance to goal: " + Vector3.Distance(transform.position, goal.position).

Tekan tombol “Main” lalu tekan Space: Console menampilkan Distance to goal: 5. Lalu tekan tombol “Periksa”.

Coba sendiri

using UnityEngine;

public class Beacon : MonoBehaviour
{
    private Transform goal;

    void Start()
    {
        // Cari object bernama Goal dan simpan Transform-nya di goal.
    }

    void Update()
    {
        // Space: catat jarak ke goal.
    }
}

Semua pelajaran di Dasar-Dasar Scripting Unity

Latihan sendiri: Playground Unity