对象破坏不玩粒子系统

Object destroys and doesnt play particle system

我刚开始使用 unity 编写脚本,我有一个脚本可以在对象的健康状况达到 0

时销毁对象
var EnemyHealth : int = 10;

function DeductPoints (DamageAmount : int) {
    EnemyHealth -= DamageAmount;
}

function Update () {

    if (EnemyHealth <= 0) {
        GetComponent.<ParticleSystem>().Play();
        Destroy(gameObject);
    }
}

当我运行这个脚本时它工作正常但是当它被销毁时,它不播放动画并继续销毁它。

如果你摧毁持有它的物体,粒子系统应该如何发挥作用?

使用 auto-destrut 参数实例化粒子系统的预制件,不要使其成为要销毁的对象的子对象。

 if (EnemyHealth <= 0) {
    Instantiate( particlesPrefab, transform.position, transform.rotation ) ;
    Destroy(gameObject);
}

编辑:我认为粒子系统有一个参数可以在发射结束时自动销毁自身,但我找不到它。您可能必须向包含粒子系统的预制件添加脚本,以便在给定的延迟后使用 Destroy function.

的第二个参数销毁它
private void Start()
{
    ParticleSystem ps = GetComponent<ParticleSystem>();
    Destroy( gameobject, ps.main.duration ) ;
}