Menu
CoddyTech

SerializeField

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

public alanı aynı anda iki işi yapar: 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 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 bunu Inspector'da göstermez.

[SerializeField], Unity'den özel bir alanı yine de kaydetmesini ve göstermesini ister. Bu taretin menzili Inspector'da her tarete göre ayarlanır ve başka hiçbir betik bu alana 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 kayıtlı değeri sessizce siler. Alan, kodda belirtilen sayıya geri döner ve bunu bildiren hiçbir hata vermez.

challenge icon

Görev

Kolay

Lambanın yüksekliğini diğer betiklerden gizle ama Inspector'da görünür tut.

  1. Alanı [SerializeField] private float height = 1f; olarak değiştir.
  2. Start() kodunu olduğu gibi bırak: Inspector, height değerini 4 olarak ayarlar.

“Oyna” düğmesine bas: lamba hâlâ 4 yüksekliğinde asılı durur. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

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

    void Start()
    {
        transform.position = new Vector3(0, height, 0);
    }
}

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

Kendi başına pratik yap: Unity playground