강의

멘토링

로드맵

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

정상훈님의 프로필 이미지
정상훈

작성한 질문수

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

Input Manager

Managers 생성

작성

·

237

0

(@Scene)오브젝트 CursorController.cs의 Start 함수에서 Managers.Resource.Load 호출 시 Managers의 Init 함수가 호출되면서 @Managers오브젝트가 Hierachy에 생성이 되야 된다고 생각을 했는데 안되는거보니 생각이 틀린듯한데

어떤 부분이 틀렸는지 간단하게 답글을 달아주시면 감사하겠습니다

퀴즈

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

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

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

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

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

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

답변 1

1

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


제 예상으로는 위 코드가 아예 실행이 되지 않고 있는 상황으로 보입니다.
로그를 찍어보거나 breakpoint를 걸어서 Managers의 Init()이 호출되는지 확인 바랍니다.


강의 코드에서는 최소한 한 번 초기화 하도록
위 부분에다가 Init();을 한 번씩 넣어놨을꺼에요.

정상훈님의 프로필 이미지
정상훈
질문자

말씀하신대로 Init() 자체가 왜 인지 호출이 안되던 상황이라 

말씀하신 부분 Resource 프로퍼티 get부분에 Init()을 각각 넣었더니 해결은 됬는데 

Resource나 Canvas 호출 시 return 부분에서 m_instance 호출시 Instance의 get{Init(); return m_instance;}이 호출되는 상황이니 따로 Init()가 필요없다고 생각하는데 왜 이런 상황이 발생하는지 모르겠네요

결과적으로 중복 호출하게 되는셈이 아닌지 궁금합니다

말씀하신 코드 다운로드 받아봐도 get{ return instance.resourceManager;} 이런식으로 되있어서요

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

m_instance는 static 멤버 변수라서
m_instance를 사용한다고 별도로 Instance를 호출하지 않습니다.
따라서 사전에 한 번 어디선가 Instance를 호출해줘야 합니다.

정상훈님의 프로필 이미지
정상훈

작성한 질문수

질문하기