2015-01-24 1 views
-3

내가 시도하고있는 게임에서 버그가 발생했습니다. 다음과 같은 오류가 발생합니다.C# 개체의 인스턴스

NullReferenceException: Object reference not set to an instance of an object 

이 코드는 다른 스크립트 중 하나에서 정상적으로 작동하지만이 오류는 계속 발생합니다. 나는 그것을 대상의 인스턴스로 설정한다고 생각했지만 그렇지 않은 것 같습니다.

UnityEngine.Component book001GUIOld = GameObject.FindWithTag("Book001Canvas").GetComponent("Canvas"); 
UnityEngine.Behaviour book001GUI = (UnityEngine.Behaviour)book001GUIOld; 

제안 사항? 더 많은 코드가 필요한 경우 알려 주시기 바랍니다. 나는 또한 노력했다. GameObject.FindWithTag("Book001Canvas")가 null 반환하기 때문에

UnityEngine.Behaviour book001GUI = GameObject.FindWithTag("Book001Canvas").GetComponent("Canvas") as behaviour; 
+1

은 객체가 null의 바닥 가장 스택을 찾을 수 있지만 야해. ..NullReference는 가장 쉬운 버그 중 하나입니다 .. – Steve

답변

0

:

Description

Returns one active GameObject tagged tag . Returns null if no GameObject was found.

그래서 당신이 오류를 잡으려고 시도 할 수 있습니다 :

var book001Canvas = GameObject.FindWithTag("Book001Canvas"); 

if (book001Canvass != null) 
{ 
    UnityEngine.Component book001GUIOld = book001Canvas.GetComponent("Canvas"); 
} 
else 
{ 
    // Recover from not finding an object with the Book001Canvas tag 
} 
0

가해야 는 .GetComponent("Canvas");는 예외가 발생합니다. GameObject.FindWithTag 문서에서

+0

GameObject는 정적 클래스이고 .FindWithTag는 정적 메소드 인 것 같습니다. 아니? – Ecnerwal

+0

아, 네가 맞다고 생각해. –

관련 문제