미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
delegate 관련 질문 (InputManager강의 중)
안녕하세요
InputManager 강의 중 아래 내용에 대해 아래와 같이 이해하였는데요, 몇 가지 질문이 있습니다 (강조 부분)
1. 아무 키나 눌러질 경우 첫째 if 문을 넘어가 둘째 if 문에 당도
2. Player 게임오브젝트의 PlayerController에서 Start함수 부분에서 KeyAction에
+=로 OnKeyBoard()를 걸었으므로(구독했으므로) 현재 KeyAction은 != null 인 상태
(정확히 얘기하면 KeyAction = OnKeyBoard(); 인가요?
-> 이게 KeyAction이 OnKeyBoard()함수의 주소를 들고있다 나중에 호출될 경우 불러낸다는 의미로 이해하면 될까요?)
3. 아무 키나 눌렀으므로 둘째 if 문 내부로 들어가 KeyAction에 걸린(구독된) OnKeyBoard()가
KeyAction.Invoke();를 통해 실행됨.
만약 PlayerController 말고 다른 Component 에서
해당 KeyAction이라는 delegate (Action이 delegate의 일종이라고 이해해서요)에 본인의 함수를 걸었을 (구독했을)경우 그 함수도 같이 실행이 되는건가요? 그럼 이 때는 KeyAction이 여러 함수의 주소를 동시에 들고있다가 동시에 호출하는 건가요?
늘 좋은 강의 잘 듣고 있습니다.
감사합니다.