Programming/Unity

[유니티] SerializeField

lingk 2021. 5. 3. 15:57

직렬화

docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/concepts/serialization/

 

Serialization(C#)

Serialization은 개체를 바이트 스트림으로 변환하여 개체를 저장하거나 메모리, 데이터베이스 또는 파일로 전송합니다.

docs.microsoft.com

 

Unity의 시리얼라이저는 실시간 게임 환경에서 실행되므로 성능에 큰 영향을 미친다. 따라서 Unity의 직렬화는 다른 프로그래밍 환경의 직렬화와 다르게 동작한다. 필드 직렬화를 사용하려면 다음을 조건을 만족해야 한다.

 

마지막 조건을 통해서 직렬화할 수 있는 fieldtype이 따로 있다는 것을 알 수 있다.

 

직렬화할 수 있는 단순 필드 타입

  • Serializable 속성이 있는 비추상, 비일반 커스텀 클래스
    (아래의 커스텀 클래스가 직렬화될 수 있도록 하는 방법 참조)
  • Serializable 속성이 있는 커스텀 구조체
  • UnityEngine.Object에서 파생된 오브젝트에 대한 레퍼런스
  • 기본 데이터 형식(int, float, double, bool, string 등)
  • 열거형 타입
  • 특정 Unity 내장 타입: Vector2, Vector3, Vector4, Rect, Quaternion, Matrix4x4, Color, Color32, LayerMask, AnimationCurve, Gradient, RectOffset, GUIStyle

직렬화할 수 있는 컨테이너 필드 타입

  • 직렬화할 수 있는 단순 필드 타입의 배열
  • 직렬화할 수 있는 단순 필드 타입의 List<T>
반응형