c# - 如何修复“'GameObject'类型的对象已被破坏但您仍在尝试访问它”
问题描述
我通过取消选中 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);
}
这 是统一的错误
谁能知道如何解决这个问题?谢谢你。
解决方案
您当前代码的流程如下:
- 调用Fall()一次(从调用开始 1 秒后,游戏对象将被销毁)。
- 您正在使用 Invoke 在0.2 秒后调用Fall() ,而您已经有任务从第一次调用中销毁游戏对象。
更新:我假设您想立即设置 kinematic 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
}
}
快乐编码:)
推荐阅读
- ansible - 如何忽略播放中的连接错误
- angular - 如何有条件地将属性添加到角度 6 中的 HTML 元素
- perl - Hashref/Arrayref,不理解下面的行为
- php - Laravel 验证器 - 不允许序列化 UploadedFile
- python - 打开使用 Tensorflow 后端的 Keras 模型时未定义“上下文”
- elasticsearch - 如何在 Kibana 中显示包含所有子项的 x 值总和的表格
- artifactory - 神器。如何通过本机浏览器禁用访问
- java - Firebase 回调接口需要声明为 final 吗?
- python - python selenium 无法处理具有两个文本输入的警报弹出窗口
- javascript - 定期检查中文标点,开发模式返回true,发布返回false