인프런 커뮤니티 질문&답변

hun Yung (YH)님의 프로필 이미지
hun Yung (YH)

작성한 질문수

따라하면서 배우는 고박사의 유니티 기초

CharacterController 기반의 오브젝트 이동 (13:41)

[SerializeField]

작성

·

241

2

[SerializeField] 이게 무슨 기능을 하는지 모르겠습니다. 검색 해봤는대 외부 참조를 막기 위함이라고 알려주었는대 이 영상에선 외부 참조를 하는거 보고 무슨 역할을 하는지 모르겠습니다.

답변 1

1

고박사님의 프로필 이미지
고박사
지식공유자

객체지향에서 변수는 public 선언을 지양합니다.

외부 클래스에서 변수에 접근해 임의로 값을 설정할 경우

원치 않는 결과로 이어질 수 있기 때문에

변수는 private 또는 protected로 선언하고, 이 변수에 접근해서 값을 제어할 수 있는

Get(), Set() 메소드 또는 프로퍼티를 정의합니다.

유니티에서도 동일하게 적용해서 사용하는데

유니티의 경우 유니티 에디터라는 것이 존재하고 Inspector View에서

변수 값을 할당할 수 있습니다.

private으로 선언한 변수는 Inspector View에 보이지 않는데

[SerializeField]를 앞에 붙이면 해당 변수의 값을 Inspector View에서 조작할 수 있습니다.

즉, 기존 객체지향에서 얘기하는 변수의 은닉성은 지키면서

에디터에서 값을 설정할 수 있도록 하기 위해 사용하는 것이

[SerializeField] 입니다.

hun Yung (YH)님의 프로필 이미지
hun Yung (YH)

작성한 질문수

질문하기