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 43 / 85.

Bir alan başka bir nesneyi tutabilir. Ona Transform veya GameObject gibi bir tür ver; Inspector, Hiyerarşi'den bir nesneyi sürükleyip üzerine bırakarak doldurabileceğin boş bir yuva gösterir. Bu kamera betiği, player alanına sürüklenen nesneyi izler ve onun 3 birim üstünde, 6 birim arkasında kalır:

public Transform player;

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

Boş bırakılan bir yuvada Yok görünür ve onu kullanan ilk satır her karede şu hatayı verir: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. İleti içindeki 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ı ve betiği adlandırdığı için hangi yuvayı doldurman gerektiğini bilirsin.

Bazı betikler yuva boşken de çalışmalıdır. Unity, boş bir yuvanın null ile eşit sayılmasını sağlar; bu nedenle böyle bir betik, yuvayı kullanmadan önce kontrol eder. Update() içindeki satırın çevresine if (player != null) eklediğinde, oyuncusu olmayan kamera hata vermek yerine bulunduğu yerde kalır.

challenge icon

Görev

Orta

Her muhafızı, Inspector'ında belirtilen nöbet noktasına gönder.

  1. public Transform post; alanını ekleyin. Guard1'in yuvasında Post1 bulunur; Guard2'ninki boştur.
  2. Update() içinde, post == null olduğunda, nöbet noktası olmayan bir muhafız yerinde kalsın diye return; kullanın.
  3. Ardından Vector3.MoveTowards(transform.position, post.position, speed * Time.deltaTime) ile hareket ettirin.

“Oyna” düğmesine basın: Guard1 nöbet noktasına yürür, Guard2 ise bekler. Ardından “Kontrol et” düğmesine basın.

Kendin dene

using UnityEngine;

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

    void Update()
    {
        // speed hızında post'a yürü. post alanı boş olan bir muhafız yerinde kalır.
    }
}

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

Kendi başına pratik yap: Unity playground