1. serializefield를 사용하는 이유
유니티에서 serializefield를 사용하는 이유를 알아보겠습니다.
public으로 선언된 변수가 있다고 했을 때, 해당 변수는 Inspector에서도 보이게 되며 다른 스크립트에서도 모두 보입니다. 즉, 수정 도 가능하게 됩니다. 프로젝트 진행 시 원치 않게 변하게 될 수 있다는 의미입니다.
교과서 적인 표현으로는 객체 캡슐화에서 보안성이 조금 떨어진다고 말할 수 있겠습니다.
그래서, 변수 선언 시 무분별한 노출을 막기 위해서 private 접근제한자를 사용하곤 하죠.
그런데 private이지만 inspector에서만 보이게 하고 싶다면, 유니티 GUI 툴의 장점만을 살리고 싶다는 이야기죠.
이럴 때 serializefield를 사용합니다. 하기처럼 사용하면, 해당 변수는 inspector에서만 접근이 가능하며 다른 스크립트 파일에서는 접근이 불가하기에 개발자가 원하는 캡슐 보안화를 잘 만들었다고 볼 수 있습니다.
2. 코드 보기
public class CollisionEvent : MonoBehaviour
{
[SerializeField]
private Color color;
private SpriteRenderer spriteRenderer;
3. 결론
Inspector 입장에서는 public 변수에 접근한 것 과 동일한 효과를 나타냅니다.
이와는 반대 개념으로는 HideInspetor Inspector 가 있습니다.
[HideInInspector] public 이라고 사용을 하면 Inspector에서만 보이지 않고, 다른 스크립트에서는 접근이 가능합니다.
해당 내용은 다음 포스팅에서 다루어 보겠습니다.
Inspector 에서만 접근가능한 priavte 변수를 만들고 싶다면 [SerializeField] 키워드를 사용해보세요
감사합니다.
'앱 만들기 > 유니티2D 게임 만드는 방법' 카테고리의 다른 글
유니티 캐릭터 수직(상하)으로 이동시키는 방법 (0) | 2024.10.27 |
---|---|
유니티 캐릭터 수평(좌우)으로 이동시키는 방법 (0) | 2024.10.26 |
유니티 스마트 폰 터치로 물체 움직이기 (2) | 2021.07.25 |
유니티-안드로이드 빌드 세팅하기. (2) | 2021.07.15 |
유니티-조이스틱 구현하기 (2) | 2021.07.12 |
댓글