사용하려면 using UnityEngine.Serialization; 지시문을 추가해야 한다.
다음과 같은 클래스가 있다고 가정해보겠다.
using UnityEngine;
public class Enemy : MonoBehaviour
{
public int hitpoints; // 체력
}
FormerlySerializedAs(oldName) 속성을 사용하면 직렬화된 값을 잃지 않고 필드의 이름을 바꿀 수 있다.
예를 들어, 아래와 같이 기존에 hitpoints라는 이름의 필드를 health로 변경하면서 FormerlySerializedAs("hitpoints")를 붙이면, 기존에 저장된 hitpoints 값이 health에 유지된다.
using UnityEngine;
using UnityEngine.Serialization;
public class Enemy : MonoBehaviour
{
[FormerlySerializedAs("hitpoints")]
public int health;
}
Unity는 기본적으로 public 필드를 직렬화하여 인스펙터에 표시하고 저장한다.
private 또는 protected 필드를 직렬화하려면 [SerializeField] 속성을 사용해야 한다.