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 42 / 67.

GameObject.Find("Player") sahnede tam olarak bu ada sahip etkin bir nesneyi arar ve bulursa onu, bulamazsa null döndürür. Inspector'da bir alanı bağlama zahmetinden kurtarır; ancak bunun bir bedeli vardır: sahnedeki her nesneyi tarar. Bu yüzden onu bir kez, Start() içinde çağırın ve sonucu bir alanda saklayın. 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 tam olarak eşleşmelidir; büyük-küçük harfler ve boşluklar da önemlidir: "player" veya "Player " hiçbir şey bulmaz. 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 sonraki satırda ortaya çıkar: burada .transform, NullReferenceException fırlatır. "Car/Wheel" gibi bir yol, Car'ın alt nesnesi olan Wheel'ı bulur.

challenge icon

Görev

Orta

Gezgin robot, hedefinin ne kadar uzakta olduğunu bildirir.

  • Start() içinde, adı Goal olan nesneyi bul ve Transform'unu goal içinde sakla.
  • Space tuşuna her basıldığında, gezgin robot ile hedef arasındaki mesafeyi Distance to goal: 5 biçiminde günlüğe kaydet.

Hedef hareket edebilir, bu nedenle ölçümü Space tuşuna basıldığı anda yap.

Play'e bas, oyuna tıkla ve Space tuşuna bas, ardından Check'e tıkla.

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.
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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