Unity’de SerializeField niteliği (attribute), private özelliğindeki bir sınıfın veya değişkenin Unity Editöründe görüntülenebilir hale getirilmesini sağlar ve bu sayede Unity Editörü üzerinden bu değişkenlere değer atanabilir hale gelir. Bu nitelik, bir sınıfın veya değişkenin özel bir serileştirme sürecinden geçirilmesini sağlayarak, Unity Editöründeki özellik pencerelerinde görüntülenebilir olmasını sağlar.
public class MyClass : MonoBehaviour
{
[SerializeField]
private int myVariable;
}
Özetle eğer private bir sınıf veya değişkeniniz varsa ve herhangi bir sebepten ötürü inspector’den değiştirilebilmesini istiyorsanız SerializeField attribute’ünü kullanmalısınız.
[SerializedField] yerine Public kullansakta aynı işi yapmıyor mu? Eğer aynı işi yapıyorsa neden [SerializedField] kodu var?
Çok güzel bir soru, bir zamanlar bende bu soruya cevap arıyordum. Durum şöyle, burdaki temel fark private bir değişken veya nesnenin sadece editör üzerinden erişilebilmesi, bir değişkenim olsun ve ben bunu sadece ilgili class’da kullanacağım dışardan herhangi bir erişim gerektirmiyor fakat aynı zamanda editörden etkileşime geçmek istiyorum işte tam bu durumda serializefield özniteliği kullanılıyor.