• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

22.11.08 23:52 작성 조회수 225

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

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

dlwpdus99님의 프로필

dlwpdus99

질문자

2022.11.10

감사합니다ㅎㅎ