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

BeanKong님의 프로필 이미지
BeanKong

작성한 질문수

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

Scene Manager #2

새로운 씬을 로드 후 InputManager 문제

해결된 질문

작성

·

470

1

안녕하세요,

강의 보면서 제 게임을 만들고 있는 학생입니다.

저는 Game씬에서 퍼즐 씬으로 넘어가도록 만들고 있습니다. 그런데 여기서 

MissingReferenceException: The object of type 'PlayerController' has been destroyed but you are still trying to access it.

Your script should either check if it is null or you should not destroy the object.

오류가 발생합니다.

InputManager에서 사용자의 키보드 입력이 들어오면  KetAction을 구독한 친구들(제 경우엔 PlayerController)에게 Invoke()를 통해 신호를 주잖아요.

그런데 새로운 씬으로 넘어가면 PlayerController가 사라지는데도 자꾸 신호를 넘겨줘서 이런 문제가 발생하는 것 같습니다. 캐릭터 이동에 할당한 키와 같은 키를 눌렀을 때 문제가 발생합니다.

이걸 해결할 수 있는 방법이 없을까요?

답변 2

3

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

여러가지 방법이 있을 수 있는데
Scene 이동을 하기 전에 InputManager의 구독을 다 날리고,
Scene 이동 후 다시 세팅하는 것이 가장 간단해보입니다.
InputManager는 더블 클릭이나 드래그 등의
마우스 기반 이벤트가 없다면 굳이 사용하실 필요는 없습니다.

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

답변 감사합니다!

0

비슷한 에러가 있었는데 말씀해주신 것 보고 올려주신 코드로 빠르게 해결했습니다. 감사합니다.

메시지: NullReferenceException: Object reference not set to an instance of an object InputManager.OnUpdate () 

BeanKong님의 프로필 이미지
BeanKong

작성한 질문수

질문하기