我是团结脚本的新手,我有一个脚本,当它的健康状况达到0
var EnemyHealth : int = 10;
function DeductPoints (DamageAmount : int) {
EnemyHealth -= DamageAmount;
}
function Update () {
if (EnemyHealth <= 0) {
GetComponent.<ParticleSystem>().Play();
Destroy(gameObject);
}
}
当我运行这个脚本时它工作正常但是当它被销毁时,它不会播放动画并继续销毁它。
答案 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 ) ;
}