[Unity] SerializeField, Serializable

정명직·2023년 6월 12일
1
post-thumbnail

SerializeField

접근 제한자 “private”를 통해 객체의 정보를 은닉하고, 캡슐화는 유지하면서, 유니티 에디터의 Inspactor에서 값을 변경하고 싶을 때 사용한다.

반대로 변수에 접근제한자가 “public”으로 지정되어 있지만 유니티 에디터 Inspactor에 노출을 막기위해서는 “[HIdeInInspactor]” 키워드를 사용하면 된다.

*( 참고로, HIdeInInspactor 키워드는 키워드 아래에 있는 모든 변수를 노출하지 않지만, SerializeField 키워드는 키워드 바로 다음에 있는 변수 1개만 노출 시킨다. ) *

Serializable

사용자가 정의한 클래스(class) 또는 구조체(Structure)의 정보를 유니티 에디터 Inspactor에 노출시킨다.

위와 같이 사용자 정의 클래스의 윗줄에 “[Serializable]” 키워드를 붙이고, C# 스크립트 메인 클래스에서 해당 클래스의 객체를 생성하면 아래와 같이 Inspactor에 노출되어 값을 지정할 수 있다.

정리

  • 변수의 값이 외부객체로 부터 변경되면 안되지만 Inspactor에서 값을 변경하고 싶을 때 SerializeField 사용
  • 클래스(class) 또는 구조체(Structure)를 Inspactor에 노출시키고 싶을 때 Serializable키워드 사용
profile
유니티 클라이언트 개발자

0개의 댓글