스크립트에서 private field를 직렬화하기 위해서 사용한다.
유니티가 코드를 직렬화할 때, 오직 public field만 직렬화하는데 private field도 직렬화하고 싶을 때 SerializeField를 사용하면 된다!
직렬화란 하면 개체의 상태를 저장, 전송 또는 재구성할 수 있는 형식으로 변환하는 일종의 프로세스. 유니티에서는 게임 상태를 저장 및 로드하거나 에디터와 런타임 간 데이터를 전송하는데 쓰인다.
using UnityEngine;
public class SomePerson : MonoBehaviour
{
// public 이니까 직렬화된다
public string firstName = "John";
// private 이니까 직렬화 되지 않는다
private int age = 40;
// SerializeField 사용했으므로 private 임에도 불구하고 직렬화 됩니다.
[SerializeField]
private bool hasHealthPotion = true;
void Start()
{
if (hasHealthPotion)
Debug.Log("Person's first name: " + firstName + " Person's age: " + age);
}
}