统一一段时间后销毁特定的游戏对象

Oph*_*lia 3 c# unity-game-engine

我现在有点坚持我的剧本。当一个带有我的脚本的游戏对象具有特定游戏对象的触发事件时,我想在一段时间后销毁特定的游戏对象。

所以我来到了这个:

void OnTriggerEnter ( Collider other) {

if (other.gameObject.tag == "leaf1"){
    StartCoroutine (LeafDestruction ());
    }
}

IEnumerator LeafDestruction(){

yield return new WaitForSeconds (5);
Destroy (gameObject);

}
Run Code Online (Sandbox Code Playgroud)

我知道这是一个菜鸟错误,但我想我错过了一些东西,因为当我运行这个脚本时,它会破坏带有脚本的游戏对象,而不是特定的游戏对象(带有标签)。

我该如何解决?

Hel*_*ium 7

更简单的解决方案是使用Destroy方法的可选第二个参数:

该对象obj在当前后立即销毁Update环,t如果指定从现在秒的时间

给出官方参数:

参数
obj 要销毁的对象。
t 在销毁对象之前延迟的可选时间量。

您可以将if语句调整为:

if (other.gameObject.tag == "leaf1")
    Destroy(other.gameObject, 5.0f);
Run Code Online (Sandbox Code Playgroud)