1. get과 set을 쓰는 이유
*get set을 둘다 사용하는 경우는 보다 제한적인 get,set을 써야만하는 이유이고
*가장 의미있게 사용하는 방식은 중요한 private변수를 대표하는 public한 상징변수를 만들어서 get; private set; 을
사용하여 (상징변수를 이용한 내부에서 내부의private 변수 읽기 및 셋팅 가능/ 상징변수를 이용한 외부에서 내부의 private변수 읽기만 가능) 한 변수를 만들거나
get;을 사용하여 (상징변수를 이용한 내부에서 내부의private변수 읽기만가능 / 상징변수를 이용한 외부에서 내부의 private변수 읽기만 가능)한 변수를 만들기 위해서이다
*인스펙터창에 나타나는 Age 가 [serializedField] int age; 임 (앞부분이 대문자로 바껴서 나옴..)
*셋팅할때 주의점!
2. set의 활용
3. get과 set -> private변수없이 바로 사용
*아래처럼 축약하면 Test의 public int Age가 실제로는 private int Age변수 역할을 하게되어
유니티의 인스펙터창에 나타나지 않음
(근데 이렇게 하면 [SerializeField] public int Age)를 해도 인스펙터창에서 안보임...) 별로 쓸용도는 없을듯
4. 읽기전용으로 만들기(다른클래스에서 읽기만 가능)
1) set을 priavet set으로 만들기
*private 변수 없이 바로 사용
2)set을 안쓰고 get만 쓰기
*private 변수 없이 바로 사용
4.get set 축약하기
5.get set의 활용 -> 함수의 기능값을 변수호출처럼 사용하기
6. 정리
1)private 변수를 대표하는 public상징변수를 사용하는경우
2)private 변수를 대표하는 public상징변수를 사용하는지 않고 자기자신에게 get과 set을 적용하는 경우
'Unity > Unity 기타' 카테고리의 다른 글
Unity3D - raycast 정리 (0) | 2021.03.29 |
---|---|
Unity3D - nav Mesh Agent 컴포넌트 (0) | 2021.03.29 |
코루틴, 인스펙터 제한자, 유니티 편리한 필수에셋 (0) | 2021.03.25 |
Unity C# - 함수를 담는 변수 - Action,Func + 람다식 (0) | 2021.03.05 |
Unity - Layer변경시 하위까지 변경하는 법 (0) | 2021.03.03 |