강의

멘토링

커뮤니티

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

dlwpdus99님의 프로필 이미지
dlwpdus99

작성한 질문수

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

Input Manager

코드 진행 흐름질문드리고싶습니다.

작성

·

339

0

안녕하세요 이번에 InputManager 코드를 다시보고 질문드립니다!

Manager 인스턴스를 생성하는코드가 없고 생성은

public static InputManager Input { get { return Instance._input; } 부분에서 생성이 시작된다고 어떤분이 질문 남기신거에 댓글 다신거보고 이해했는데요.

그럼 처음 시작이 처음에 Manager 게임오브젝트가없으니

PlayerController의

Managers.Input.KeyAction -= OnKeyBoard;

Managers.Input.KeyAction += OnKeyBoard;

부분에서 매니져 호출이 일어나고

 

public static InputManager Input { get { return Instance._input; } } 이 코드로 넘어와서

return Instance._input을 해줄때

 

static Managers Instance { get { Init(); return s_Instance; } } 이 코드가 실행이 되는것일까요?

그리고 Init()으로 들어가서 instance null 체크를 해주어서 Manager게임오브젝트를 생성시키는지 궁금합니다.

 

그리고 혹시 Manager스크립트의 Update문에

_input.OnUpdate()와 Input.OnUpdate()의 차이가 무엇인가요? 실행은 똑같이 잘 되더라구요.

 

혹시 이러한 전체적인 코드흐름을 시작부터 끝까지 보려면 디버깅을 브레이크포인트를 어디로 잡아서 해야하는건지 질문드립니다.

Managers.Input.KeyAction -= OnKeyBoard;

Managers.Input.KeyAction += OnKeyBoard;

부분에 브레이크포인트잡아서 F10과 F11눌러가면서 보았는데 바로 Managers의 Start문으로 들어가네요..

답변 1

0

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

네 이해하신게 맞습니다.
그리고 _input Input은 말 그대로 Init() 처리 유무일 뿐 큰 차이는 없습니다.
breakpoint 걸 때는 f10 f11에 헷갈리면
미리 예상되는 지점에 bp를 걸고 실행해보세요.

dlwpdus99님의 프로필 이미지
dlwpdus99
질문자

감사합니다ㅎㅎ

dlwpdus99님의 프로필 이미지
dlwpdus99

작성한 질문수

질문하기