【发布时间】: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);
}
谁能知道如何解决这个问题?谢谢。
【问题讨论】:
-
为什么要打两次
Fall?首先调用它,然后以 .2 延迟调用它。似乎在第二次调用中,gamebject 已经被销毁了。您需要修复它或在销毁它之前检查游戏对象是否为空,仅在它不为空的情况下销毁它:) -
我刚刚测试了代码,它对我来说很好用。但我认为这与@rustyBucketBay 已经说过的话有关。您正在调用该方法两次。上面的代码是您使用的确切代码吗?
-
@DanielM 是的,上面的代码是我正在使用的确切代码。所以我只需要删除 Fall() 并使用 Invoke("Fall", 0.2f);对。
-
@TalonTài 是的,你一定要试试。
-
@DanielM 谢谢我删除了 Fall() 并重置了统一,它可以正常工作,哈哈。
标签: c# android unity3d game-engine