C# Unity:在完成渲染后销毁VFX对象

C# Unity:在完成渲染后销毁VFX对象,c#,unity3d,C#,Unity3d,我遵循这个统一(与C#)教程:我们有一艘太空船,当小行星撞击它时,它会被摧毁。小行星被摧毁,爆炸VFX成功渲染。但是,此时不可见的爆炸对象将永远保留在场景中。我想清除它们。我知道这会奏效: void DestroyObjectDelayed() { // Kills the game object in 5 seconds after loading the object Destroy(this.gameObject, 5); } 但我想知道是否有办法让对象在完成爆炸效果渲染

我遵循这个统一(与C#)教程:我们有一艘太空船,当小行星撞击它时,它会被摧毁。小行星被摧毁,爆炸VFX成功渲染。但是,此时不可见的爆炸对象将永远保留在场景中。我想清除它们。我知道这会奏效:

void DestroyObjectDelayed()
{
    // Kills the game object in 5 seconds after loading the object
    Destroy(this.gameObject, 5);
}

但我想知道是否有办法让对象在完成爆炸效果渲染时自行销毁,而不是我设置几秒钟。

您可以使用粒子系统的持续时间。播放完毕后,将此应用于任何要破坏的粒子系统

 public class DestroyParticles : MonoBehaviour
 {
     void Start()
     {
         Destroy(this.gameObject, GetComponent<ParticleSystem>().main.duration); 
     }
 }
公共类销毁粒子:单一行为
{
void Start()
{
销毁(this.gameObject,GetComponent().main.duration);
}
}

没有名为
持续时间的属性。。我相信你的意思是
GetComponent().main.duration
see->它可以工作。谢谢编辑答案以添加@derHugo所说的内容谢谢大家。这一定是针对遗留系统的。