对象破坏并且不玩粒子系统

时间:2017-01-09 20:51:48

标签: unity3d unityscript

我是团结脚本的新手,我有一个脚本,当它的健康状况达到0

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

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

function Update () {

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

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

1 个答案:

答案 0 :(得分:3)

如果破坏持有它的物体,粒子系统应该如何播放?

使用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 ) ;
}