2014-11-11 1 views
1

MissingReferenceException : 'Transform'유형의 객체가 파괴되었지만 여전히 액세스하려고합니다.Unity | MissingReferenceException : 'Transform'유형의 객체가 파괴되었지만 여전히 액세스하려고 시도하고 있습니다.

스크립트가 null인지 또는 개체를 파괴해서는 안됩니다.

UnityEngine.Transform.get_position() (at C:/BuildAgent/work/d63dfc6385190b60/artifacts/EditorGenerated/UnityEngineTransform.cs:28) 

Destroy+$SpawnAfter5Seconds$1+$.MoveNext() (at Assets/Scripts/Destroy.js:22) 

어떤 도움이 필요합니까?

+0

당신은 오히려 인스턴스화 하나보다, 객체 참조를 파괴하고 있습니다. 변수를 인스턴스화하여 객체를 보유하고 대신 객체를 파괴합니다. – LokiSinclair

답변

0

null이므로 Destroyed이므로 개체에 대한 작업을 수행하려고합니다.

솔루션

그것을 파괴하지 마십시오 이미 파괴 무언가를 액세스하려고하지 않습니다. 당신은 항상 다음과 같이 확인할 수 있습니다

if(transformReference != null) 
{ 
    // Safe to use. 
} 
0

이동하려는 대상, 위치 변경 등이 파괴되었음을 나타냅니다. 스크립트에서 사용한 객체와 같은 새 객체를 만들어보십시오. 도움이되지 않으면 설명에 스크립트를 게시하십시오. 좋은 하루 되세요!

-1
void FixedUpdate() 
{ 
    Vector3 targetCamePos = target.position + offset; 
    if (targetCamePos != null) 
    { 
     transform.position = Vector3.Lerp(transform.position, targetCamePos, smoothing * Time.deltaTime); 
     if (transform.position.y < lowY) 
     { 
      transform.position = new Vector3(transform.position.x, lowY, 
transform.position.z); 

      //if our character fallow the x/z not y 
     } 
    } 
} 
+0

이유가 무엇인지 모르겠다. 왜 변형으로 인해 오류가 발생하는지 이해할 수 없다. – mNan

+0

대답에 대한 자세한 설명을 제공해야한다. – timiTao

관련 문제