如何修复“'GameObject'类型的对象已被破坏但您仍在尝试访问它”

Posted

技术标签:

【中文标题】如何修复“\'GameObject\'类型的对象已被破坏但您仍在尝试访问它”【英文标题】:How can I fix "The object of type 'GameObject' has been destroyed but you are still trying to access it"如何修复“'GameObject'类型的对象已被破坏但您仍在尝试访问它” 【发布时间】:2021-11-11 05:57:50 【问题描述】:

我通过取消选中 isKinematic 来创建平台下降效果,但我不断收到错误消息: “MissingReferenceException:'GameObject' 类型的对象已被销毁,但您仍在尝试访问它。 这是我的代码:

// Update is called once per frame
void Update()

    


private void OnCollisionExit(Collision collision)
    if(collision.gameObject.tag == "Player")
    
        Fall();
        Invoke("Fall", 0.2f); //delay 0.2 s chu y dau va viet thuong
    


void Fall()
    GetComponent<Rigidbody>().isKinematic = false;
    Destroy(gameObject,1f);


Here is the error in unity

谁能知道如何解决这个问题?谢谢。

【问题讨论】:

为什么要打两次Fall?首先调用它,然后以 .2 延迟调用它。似乎在第二次调用中,gamebject 已经被销毁了。您需要修复它或在销毁它之前检查游戏对象是否为空,仅在它不为空的情况下销毁它:) 我刚刚测试了代码,它对我来说很好用。但我认为这与@rustyBucketBay 已经说过的话有关。您正在调用该方法两次。上面的代码是您使用的确切代码吗? @DanielM 是的,上面的代码是我正在使用的确切代码。所以我只需要删除 Fall() 并使用 Invoke("Fall", 0.2f);对。 @TalonTài 是的,你一定要试试。 @DanielM 谢谢我删除了 Fall() 并重置了统一,它可以正常工作,哈哈。 【参考方案1】:

您当前的代码流程如下:

调用 Fall() 一次(调用后 1 秒后,gameObject 将被销毁)。 您正在使用 Invoke 在 0.2 秒之后调用 Fall(),而您已经有一个任务从第一次调用中销毁游戏对象。

更新:我假设您想立即将运动学设置为 false。我更新了这段代码:)


代码

using UnityEngine;

public class Q69205071 : MonoBehaviour

    private void OnCollisionExit(Collision collision)
    
        if (collision.gameObject.tag == "Player")
        
            //Fall(1f);
            /// since you want everything to be executed after 0.2 seconds
            /// you could use Invoke or coroutines.
            Invoke("Fall", 0.2f); 
        
    

    private void Fall()
    
        GetComponent<Rigidbody>().isKinematic = false;
        Destroy(gameObject, 1f); // 1 seconds delay before destroying the gameObject
    

快乐编码:)

【讨论】:

您的代码不会产生与 OP 的代码相同的行为。在 OP 的代码中,平台将等待 0.2 秒直到它崩溃。然后它会在 1 秒后自行销毁,总共需要 1.2 秒。在您的代码中,平台将立即倒下并在 1 秒后销毁。 @DanielM 真的!我假设他们想立即禁用运动学:) 更新了答案。

以上是关于如何修复“'GameObject'类型的对象已被破坏但您仍在尝试访问它”的主要内容,如果未能解决你的问题,请参考以下文章

如何修复漏洞

如何修复WMI

PHP网站漏洞怎么修复 如何修补网站程序代码漏洞

如何修复这些漏洞? (npm audit fix 无法修复这些漏洞)

如何修复AppScan漏洞

如何在DOS环境下修复系统