Menu
CoddyTech

Inspector'daki Referanslar

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

Bir alan başka bir nesneyi tutabilir. Alana Transform veya GameObject gibi bir tür ver; Inspector'da, Hierarchy'den bir nesneyi sürükleyip bırakabileceğin boş bir yuva görünür. Bu kamera betiği, player alanına sürüklenen nesneyi takip eder; nesnenin 3 birim üstünde ve 6 birim arkasında kalır:

public Transform player;

void Update()
{
    transform.position = player.position + new Vector3(0, 3, -6);
}

Boş bırakılan yuvada None görünür ve bu yuvayı kullanan ilk satır her karede şu hatayı verir: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. Mesajın bir sonraki satırı ne yapman gerektiğini söyler: You probably need to assign the player variable of the CameraFollow script in the inspector. Alanın ve betiğin adını belirtir; böylece hangi yuvayı dolduracağını bilirsin.

Bazı betikler, yuva boşken de çalışmalıdır. Unity, boş bir yuvayı null ile eşit kabul eder; dolayısıyla böyle bir betik, alanı kullanmadan önce kontrol eder. Update() içindeki satırı if (player != null) ile çevrelediğinde, oyuncusu olmayan bir kamera hata vermek yerine olduğu yerde kalır.

challenge icon

Görev

Orta

Her muhafız kendi nöbet noktasına yürür. Sahnede Guard1'in Inspector'ı, Post1 nesnesini post adlı alana yerleştirir. Guard2'nin nöbet noktası henüz oluşturulmadı, bu yüzden post yuvası boştur.

  • Guard betiğine post adlı bir Transform alanı ekle.
  • Bir muhafız, nöbet noktasının konumuna saniyede speed birim hızla yürür ve nöbet noktası daha sonra taşınsa bile onun üzerinde durur.
  • Nöbet noktası yuvası boş olan bir muhafız, hata vermeden olduğu yerde kalır.

Play'e bas, Post yuvasını görmek için Hierarchy'de her muhafızı seç, ardından Check'e bas.

Kendin dene

using UnityEngine;

public class Guard : MonoBehaviour
{
    // post: bu muhafızın yürüdüğü Transform; Inspector'da ayarlanır
    public float speed = 2f;

    void Update()
    {
        // post konumuna speed hızında yürü. post alanı boş olan bir muhafız yerinde kalır.
    }
}
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