对象破坏不玩粒子系统
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 ) ;
}
我刚开始使用 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 ) ;
}