Menu
CoddyTech

SerializeField

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

public bir alan aynı anda iki iş görür: Inspector'da görünür ve diğer tüm betikler onu okuyup değiştirebilir. Çoğu zaman yalnızca ilkini istersin. private bir alan (C#'ta varsayılan) yalnızca kendi sınıfı tarafından değiştirilebilir; böylece başka hiçbir betik onu bozamaz, ancak Unity onu Inspector'da göstermez.

[SerializeField], Unity'den özel bir alanı yine de kaydetmesini ve göstermesini ister. Bu taretin menzili Inspector'da her taret için ayrı ayrı ayarlanır ve başka hiçbir betik ona dokunamaz:

[SerializeField] private float range = 5f;

void Start()
{
    Debug.Log("Range: " + range);
}

Unity kodlarının çoğu ayarlarını bu şekilde tutar: [SerializeField] ile birlikte private olarak. Tersine dikkat et: bir alanı private yapıp özniteliği unutursan Unity, sahnede kaydedilmiş değeri sessizce siler. Alan, bunu sana bildirecek hiçbir hata olmadan koddaki sayıya geri döner.

challenge icon

Görev

Kolay

Lambanın height değeri herkese açıktır, bu yüzden herhangi bir betik onu hareket ettirebilir. height değerini Inspector'da görünür kalacak şekilde private yap; Inspector bu değeri 4 olarak ayarlar. Lamba yine de Inspector'da belirtilen yükseklikte asılı kalmalıdır.

Play'e basıp lambanın yüksekliğine bak, ardından Check'e bas.

Kendin dene

using UnityEngine;

public class LampHeight : MonoBehaviour
{
    public float height = 1f;

    void Start()
    {
        transform.position = new Vector3(0, height, 0);
    }
}
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