Serializefield Nedir? Nasıl Kullanılır?

ücretsiz unity eğitim serisi

Unity’de SerializeField ile tanımlanan alanlar ne işe yarar?” sorusunun cevabını arıyoruz. SerializeField olarak belirtilen değişkenlerin değerlerini Unity oyun motorumuzda tanımlamamıza olanak sağlar. Bunu bir örnek ile açıklayalım.

Unity SerializeField Örneği

İlk adım olarak bir proje oluşturalım. Project penceresinde sağ tıklayıp Create > C# Script seçeneğini seçelim. Daha sonra istediğiniz şekilde adlandırabilirsiniz.

Ardından C# scriptimize çift tıklayıp Visual Studio’da açalım. Birkaç farklı türden Serialize Field olarak değişkenler tanımlayalım.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SerializeFieldExample : MonoBehaviour
  {
  [SerializeField] int number;
  [SerializeField] Vector3 vector;
  [SerializeField] GameObject obje;

  // Start is called before the first frame update
  void Start()
  {

  }

  // Update is called once per frame
  void Update()
  {

  }
}

Şimdi Unity’de herhangi bir objeye oluşturduğumuz scripti taşıyıp bırakalım.

Yukarıdaki resimde gördüğünüz üzere değiştirilebilir alanlar eklemiş olduk. Eklediğimiz bu değişkenlerin referansları artık kodumuzda bulunmakta. Ayrıca bu değişkenlere default değerler de verilebilir.
Örneğin:

[SerializeField] int number = 1;

yazarak Unity’de bu serialize edilmiş alanın varsayılan değeri olarak 1 bulunduğunu görebiliriz.

Not: Bir değişkeni public olarak tanımlarsak da aynı şekilde kullanabiliriz fakat bu güvenli bir yöntem değildir. Bu yüzden SerializeField kullanımı önem arz etmektedir.