작성한 질문수
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Input Manager
작성
·
230
0
(@Scene)오브젝트 CursorController.cs의 Start 함수에서 Managers.Resource.Load 호출 시 Managers의 Init 함수가 호출되면서 @Managers오브젝트가 Hierachy에 생성이 되야 된다고 생각을 했는데 안되는거보니 생각이 틀린듯한데
어떤 부분이 틀렸는지 간단하게 답글을 달아주시면 감사하겠습니다
답변 1
1
제 예상으로는 위 코드가 아예 실행이 되지 않고 있는 상황으로 보입니다.로그를 찍어보거나 breakpoint를 걸어서 Managers의 Init()이 호출되는지 확인 바랍니다.강의 코드에서는 최소한 한 번 초기화 하도록위 부분에다가 Init();을 한 번씩 넣어놨을꺼에요.
말씀하신대로 Init() 자체가 왜 인지 호출이 안되던 상황이라
말씀하신 부분 Resource 프로퍼티 get부분에 Init()을 각각 넣었더니 해결은 됬는데
Resource나 Canvas 호출 시 return 부분에서 m_instance 호출시 Instance의 get{Init(); return m_instance;}이 호출되는 상황이니 따로 Init()가 필요없다고 생각하는데 왜 이런 상황이 발생하는지 모르겠네요
결과적으로 중복 호출하게 되는셈이 아닌지 궁금합니다
말씀하신 코드 다운로드 받아봐도 get{ return instance.resourceManager;} 이런식으로 되있어서요
m_instance는 static 멤버 변수라서m_instance를 사용한다고 별도로 Instance를 호출하지 않습니다.따라서 사전에 한 번 어디선가 Instance를 호출해줘야 합니다.
말씀하신대로 Init() 자체가 왜 인지 호출이 안되던 상황이라
말씀하신 부분 Resource 프로퍼티 get부분에 Init()을 각각 넣었더니 해결은 됬는데
Resource나 Canvas 호출 시 return 부분에서 m_instance 호출시 Instance의 get{Init(); return m_instance;}이 호출되는 상황이니 따로 Init()가 필요없다고 생각하는데 왜 이런 상황이 발생하는지 모르겠네요
결과적으로 중복 호출하게 되는셈이 아닌지 궁금합니다
말씀하신 코드 다운로드 받아봐도 get{ return instance.resourceManager;} 이런식으로 되있어서요