• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

delegate 관련 질문 (InputManager강의 중)

21.04.06 00:51 작성 조회수 111

0

안녕하세요

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이 여러 함수의 주소를 동시에 들고있다가 동시에 호출하는 건가요?

늘 좋은 강의 잘 듣고 있습니다.

감사합니다.

답변 1

답변을 작성해보세요.

2

네 다 맞게 이해하셨습니다.