[유니티] 프로퍼티

NOAH·2021년 6월 19일
0

Unity

목록 보기
9/33
post-thumbnail

프로퍼티를 왜, 언제 쓸까?

유니티프로젝트에서 점수를 관리한다고 생각해보자.
PointManager 클래스와 TestPoint클래스를 선언하고
TestPoint클래스에서 PointManager의 점수를 조작하는 예시이다.

점수는 음수이거나 99999와 같은 도달 불능한 수가 점수가 될 수 없다.

pointManager.point = -50;

pointManager.point = 99999;

하지만 이와 같이 점수를 -50점이나 99999와
같은 도달 불능한 값을 넣어준다고 하여도 그대로 적용 될 수 밖에 없다.

이를 방지하기 위해서 조건문과 함수를 통해서 들어오는 값을 통제하면 다음과
같이 코딩할 수 있다.

PointManager의 필터링해주는 SetPoint함수와, 점수를 가져오는 GetPoint함수를 구현한 뒤에

TestPoint클래스에서는 이와 같이 점수가 될만한 필터링된 값을 가져올 수 있다.

프로퍼티를 사용해보자.

위 방식대로 함수를 통해서 구현은 가능하지만 심리적으로 부담감이 생긴다.
그런 우리를 위해 변수처럼 보이지만 사실 내부적으로는
함수가 구현할 수 있는 Property라는 것이 있다.

프로퍼티를 통해 구현했으니 이제 클래스 외부에서 점수를 조정해보자.

디버그 콘솔창을 확인해보면 잘 적용되었다.

결론

프로퍼티는 클래스외부에서 변수처럼 보이지만 클래스 내부에는 get,set 으로 구현된 '함수'이다. set 함수를 통해서 원하는 범위의 값만 입력될 수 있도록하여 디펜시브한 구현이 가능하다. 이외에도 set을 아예 선언하지 않으면 클래스 외부에서는 값을 바꾸지 못하거나, 접근제어자를 protected나 private으로 설정하면 자식 클래스혹은 함수 내부에서만 값을 바꿀 수 있다.

0개의 댓글