• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

새로운 씬을 로드 후 InputManager 문제

21.05.10 13:42 작성 조회수 335

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

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

BeanKong님의 프로필

BeanKong

질문자

2021.05.10

답변 감사합니다!

0

hy ki님의 프로필

hy ki

2022.04.05

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

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