해결된 질문
작성
·
203
0
안녕하세요!
아래에 질문글들을 읽어봤는데
제가 이해한 것이 맞는지 여쭤보고 싶습니다.
OnKeyboard가 작동하기 까지의 순서가
1.
프로그램 실행과 동시에 매니저에서 Input Manager 인스턴스가 선언되면서 InputManager의 OnUpdate가 실행됨,
2.
동시에 Player Controller 의Start() 가 실행되면서, null이였던 KeyAction에 OnKeyboard()라는 함수가 값으로 들어감(실행되진 않음)
3.
키보드 입력이 되기 전에는 return; 에 의해서 Invoke()가 실행되지 않음.
4.
키보드 입력시 Invoke() 가 실행, 구독하고 있던 OnKeyBoard()가 실행됨 wasd가 눌리면 이동, 회전 , 다른키가 눌리면 아무일도 안일어남.
즉 요약하자면
1.InputManager OnUpdate(), PlayerController Start()가 실행
2.InputManager OnUpdate()에서 키입력을 확인
3. 어떤 키라도 입력이 된다면 Invoke()실행
4. 키가 wasd인경우 이동,회전 실행 아니면 아무일도없음
이렇게 이해했습니다. 제가 맞게 이해했나요?
답변 1
0
네 이해하신게 맞습니다.
다만 InputManager는 추후(Part7에서) 사라질 예정이니
너무 깊게 생각하지 않으셔도 됩니다.
키보드 기반 게임에선 굳이 사용할 필요 없음에도
너무 많은 혼란을 야기한 것 같아서 삭제 되었습니다.
제가 아직 이벤트랑 구독에서 이해가 완벽하게 되지 않았는데, 조금 풀린 느낌입니다.
그리고, 이 게임이 아니더라도, 다른게임(다른글에서 언급하셨던 마우스 기반형게임?)을 만들 때에는 쓰일 수도 있으니 미리 공부하고 싶었습니다.
항상 친절한 답변 감사합니다