Menu
CoddyTech

Ada Göre Bul

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 56 / 85.

GameObject.Find("Player"), sahnede tam olarak bu ada sahip etkin bir nesneyi arar ve bulursa onu, bulamazsa null değerini döndürür. Inspector'da bir alanı bağlama işini ortadan kaldırır, ancak bunun bir bedeli vardır: sahnedeki her nesneyi tarar. Bu yüzden onu Start() içinde bir kez çağır ve sonucu bir alanda sakla. Bu güvenlik kamerası, oyun başladığında Player'ı bulur ve her karede onu izler:

private Transform player;

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

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

Ad; büyük harfler ve boşluklar da dahil olmak üzere tam olarak eşleşmelidir: "player" veya "Player " hiçbir şey bulamaz. Find ayrıca etkin olmayan (gizli) nesneleri de atlar. Başarısız bir arama sessizce null döndürür ve hata, sonucu kullanan bir sonraki satırda ortaya çıkar: burada .transform, NullReferenceException hatasına yol açar. "Car/Wheel" gibi bir yol, Car'ın alt nesnesi olan Wheel'ı bulur.

challenge icon

Görev

Orta

Gezgin, hedefinin ne kadar uzakta olduğunu bildirir.

  1. Start() içinde goal = GameObject.Find("Goal").transform; ayarla.
  2. Update() içinde, Input.GetKeyDown(KeyCode.Space) olduğunda "Distance to goal: " + Vector3.Distance(transform.position, goal.position) değerini günlüğe yazdır.

“Oyna” düğmesine bas ve Space tuşuna bas: Konsol, Distance to goal: 5 değerini gösterir. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class Beacon : MonoBehaviour
{
    private Transform goal;

    void Start()
    {
        // Goal adlı nesneyi bul ve Transform bileşenini goal içinde sakla.
    }

    void Update()
    {
        // Space: hedefe olan mesafeyi günlüğe kaydet.
    }
}

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground