团结| MissingReferenceException:“Transform”类型的对象已被销毁,但您仍在尝试访问它

时间:2014-11-11 22:40:48

标签: unity3d

MissingReferenceException:类型'变换'已被破坏,但你仍然试图访问它。

您的脚本应该检查它是否为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)

任何帮助?

3 个答案:

答案 0 :(得分:0)

这意味着您正在尝试移动的对象,更改位置等ID被破坏。 尝试创建一个名为您在脚本中使用的对象的新对象。如果它没有帮助,请在评论中发布脚本。 祝你有美好的一天!

答案 1 :(得分:0)

您想要对现在为null的对象执行操作,因为它是Destroyed

解决方案

不要摧毁它或者不要试图访问已经被摧毁的东西。您可以随时查看:

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

答案 2 :(得分:-2)

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
        }
    }  
}