강의

멘토링

로드맵

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

조창훈님의 프로필 이미지
조창훈

작성한 질문수

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

Input Manager

액션 실행 순서 관련 질문

해결된 질문

작성

·

238

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인경우 이동,회전 실행 아니면 아무일도없음

이렇게 이해했습니다.  제가 맞게 이해했나요?

퀴즈

56%나 틀려요. 한번 도전해보세요!

게임 오브젝트의 이동 계산 시 Time.deltaTime 값을 곱해주는 주된 이유는 무엇일까요?

캐릭터의 최대 이동 속도를 제한하기 위해

모든 컴퓨터에서 초당 이동 거리를 일정하게 유지하기 위해

물리 엔진 계산의 정확도를 높이기 위해

오브젝트의 회전 상태에 따라 이동 방향을 결정하기 위해

답변 1

0

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

네 이해하신게 맞습니다.
다만 InputManager는 추후(Part7에서) 사라질 예정이니
너무 깊게 생각하지 않으셔도 됩니다.
키보드 기반 게임에선 굳이 사용할 필요 없음에도
너무 많은 혼란을 야기한 것 같아서 삭제 되었습니다.

조창훈님의 프로필 이미지
조창훈
질문자

제가 아직 이벤트랑 구독에서 이해가 완벽하게 되지 않았는데, 조금 풀린 느낌입니다.

그리고, 이 게임이 아니더라도, 다른게임(다른글에서 언급하셨던 마우스 기반형게임?)을 만들 때에는 쓰일 수도 있으니 미리 공부하고 싶었습니다.

항상 친절한 답변 감사합니다

조창훈님의 프로필 이미지
조창훈

작성한 질문수

질문하기