인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

루테닛댄님의 프로필 이미지
루테닛댄

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

delegate 관련 질문 (InputManager강의 중)

작성

·

176

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

Rookiss님의 프로필 이미지
Rookiss
지식공유자

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

루테닛댄님의 프로필 이미지
루테닛댄

작성한 질문수

질문하기