Unity | 직렬화

Clean·2025년 4월 14일

Unity

목록 보기
3/24

2D 에디터는 조금 익숙하지만 3D 에디터는 처음이라 되게 어색했다.

카메라 조작, 오브젝트 배치, 콜라이더 조정 등 2D로는 익숙한게 3D가 되니 차원이 다르다. 🤣


직렬화 (Serialization)

직렬화는 간단히 말해서 변수를 유니티 에디터에 공유한다고 보면 된다.

VS에서 선언한 변수를 에디터에서 값의 변화를 시각적으로 볼 수 있고 수정도 할 수 있다.

public int value; 같이 선언하면 에디터에서는 위와 같이 보이며, 수정도 가능하다.


속성 (attribute)

[Serializable]
public struct StructType
{
	public int value1;
	public string value2;
}
public StructType structField;

[Serializable]
public class ClassType
{
	public int value1;
	public string value2;
}
public ClassType classField;

Space(height)

[Space(height)]
[Space]

여백으로 변수와 변수 사이에 height 픽셀의 세로 여백을 추가한다.
숫자를 입력하지 않으면 기본으로 8픽셀 여백이 생긴다.


[Header("가나다라마바사")]

변수 위의 제목으로 한글도 사용할 수 있다.


[Range(min, max)]

[Range(0, 10)]
public float rangeValue;

최소값과 최대값을 정할 수 있고, 에디터에 슬라이더가 생성되어 드래그로 조절할 수도 있다.


[SerializeField]

[SerializeField]
private int privateValue;

private 변수를 다른 클래스에서 접근하지 못하지만 에디터에서는 보거나 수정할 수 있다.


[HideInInspector]

[HideInInspector]
public int publicValue;

[SerializeField] 와 달리 public 변수를 에디터에서 공개하지 않는다.


[TextArea(minLines, maxLines)]

[TextArea(3, 5)]
public string textField;

여러 줄의 텍스트를 입력할 수 있는 입력창을 생성한다.
(3, 5) 는 최소 3줄, 최대 5줄이란 뜻이다.


[Serializable]

[Serializable]
public struct StructType
{
	public int value1;
	public string value2;
}
public StructType structField;
//////////////////////////////
[Serializable]
public class ClassType
{
	public int value1;
	public string value2;
}
public ClassType classField;

[Serializable]public StructType structField 사이의 구조체나 클래스를

에디터에 보여주고 값을 수정할 수 있다.


[Tooltip(string)]

[Tooltip("최대 체력 값입니다.")]
public int maxHealth;

에디터에서 변수에 마우스를 올리면 변수의 설명을 나오게 할 수 있다.


#region 처럼 가독성을 위해 사용할 수도 있지만,

직렬화는 사용법에 익숙해지기만 한다면 훨씬 보기 좋게 사용할 수 있을 것 같다.

특히 툴팁과 슬라이더가 아주 유용해 보인다.

0개의 댓글