꾸준실습 과제를 완료해서 튜터님께 검사를 받으러 갔다.
전반적으로 잘 되어 있지만 다른 방법도 한번 생각해볼 수 있게 질문 하셨다.
2가지에 대해 알게되었다.
우선 첫번째로 나머지 연산(모듈러 연산)
AnimationController 스크립트에서 애니메이션을 클릭할 때마다
0(idle), 1(jump) 2,(attacked)가 변경되도록 하는 반복 문제에서
다른 풀이 방법도 있는걸 알게됐다.
내 풀이
if (animationVariable < 2)
animationVariable++;
else
animationVariable = 0;
if문을 활용해서 0, 1, 2(후위연산)가 반복되도록 했다. 이 방법도 맞지만
숫자가 계속 커질때 반복 숫자가 나오게 하는 다른 방법을 물어보셨고
3, 4, 5 … 코드에 적어보다가 나머지 연산이 생각났다.
animationVariable = (animationVariable + 1) % 3;
animationVariable 변수에 1을 더해주고 3을 나눈다.
그러면 0 → 1 → 2 → 0 → 1 → 2 ... 이렇게 순환된다.
외우기 쉽게 순환하고 싶은 숫자 수만큼(여기선 [0, 1, 2] 3개 이므로 % 3) 나누면 된다.
조건문, 반복문 등 방법을 고민을 많이 했는데
나머지 연산은 1줄로도 간단하니 가독성이 좋으면서도 색다른 방법을 배울 수 있어 좋았다.
검색해보니 모듈러 연산이라고 하는데.. 나머지만 구하고 싶을때 사용하는 방법 같다.
두번째로 Event 키워드
외부에서 구독하고 호출할때 사용하는 Event에 대해 알게됐다.
3가지 경우를 설명해주셨다.
1) 접근제한자 public이고 Event 키워드가 없는 경우
접근제한자가 public이고 event가 키워드가 없으면
외부에서 호출도 구독도 가능하다.
2) 접근제한자 public이고 Event 키워드가 있는 경우
접근제한자가 public이며 event가 키워드가 있으면
외부에서 구독은 가능하지만 호출은 불가능하다.
3) 접근제한자 private이고 Event 키워드가 있는 경우
접근제한자가 private이고 event가 키워드가 있으면
외부에서 구독도 호출도 불가능하다.
정리하면 event 키워드는 다른곳에서 호출하지 못하므로
데이터를 외부로부터 보호하여 캡슐화가 가능하다.
event 키워드가 어떤 경우에 사용하는지 정의가 모호했는데
이번에 알게됐다. 잘만 활용하면 객체지향의 장점을 살릴 수 있을 것 같다.
'Unity' 카테고리의 다른 글
[Unity] 코루틴 사용법과 특징 정리 (3) | 2024.11.06 |
---|---|
[Unity] activeSelf (1) | 2024.11.05 |
[Unity] Skybox, Raycast (1) | 2024.10.23 |
[Unity] AddForce (0) | 2024.10.16 |
[Scriptable Object] (5) | 2024.10.10 |