앱 만들기/유니티2D

unity C# serializefield 사용 이유

나도 처음이야 2023. 5. 23.

1. serializefield를 사용하는 이유

유니티에서 serializefield를 사용하는 이유를 알아보겠습니다.

public으로 선언된 변수가 있다고 했을 때, 해당 변수는 Inspector에서도 보이게 되며 다른 스크립트에서도 모두 보입니다. 즉, 수정 도 가능하게 됩니다. 프로젝트 진행 시 원치 않게 변하게 될 수 있다는 의미입니다.

교과서 적인 표현으로는 객체 캡슐화에서 보안성이 조금 떨어진다고 말할 수 있겠습니다.

그래서, 변수 선언 시 무분별한 노출을 막기 위해서 private 접근제한자를 사용하곤 하죠.

 

그런데 private이지만 inspector에서만 보이게 하고 싶다면, 유니티 GUI 툴의 장점만을 살리고 싶다는 이야기죠.

이럴 때 serializefield를 사용합니다. 하기처럼 사용하면, 해당 변수는 inspector에서만 접근이 가능하며 다른 스크립트 파일에서는 접근이 불가하기에 개발자가 원하는 캡슐 보안화를 잘 만들었다고 볼 수 있습니다.

 

2. 코드 보기

public class CollisionEvent : MonoBehaviour
{
    [SerializeField]
    private Color color;
    private SpriteRenderer spriteRenderer;

 

private 변수이지만 inspector 에서는 접근가능함

3. 결론

Inspector 입장에서는 public  변수에 접근한 것 과 동일한 효과를 나타냅니다.

이와는 반대 개념으로는 HideInspetor Inspector 가 있습니다.

[HideInInspector] public 이라고 사용을 하면 Inspector에서만 보이지 않고, 다른 스크립트에서는 접근이 가능합니다.

해당 내용은 다음 포스팅에서 다루어 보겠습니다.

 

Inspector 에서만 접근가능한 priavte 변수를 만들고 싶다면 [SerializeField] 키워드를 사용해보세요

감사합니다.

반응형

댓글