Unity 如何在父级被禁用时播放粒子系统效果

本文关键字:播放 粒子系统 Unity | 更新日期: 2023-09-27 17:55:40

如果父级被禁用,如何播放粒子系统效果?

我想在我的障碍物位置播放粒子系统效果。问题是我的粒子如果我的对象是子对象并且当我禁用父(对象)时,粒子系统就会被禁用并且不会播放影响

如何在障碍物

的相同位置以及障碍物被禁用/破坏时播放效果。

Unity 如何在父级被禁用时播放粒子系统效果

创建名为 ParticlesHolder 的游戏对象。将下面的脚本附加到它,然后确保将大小从编辑器更改为2。将两个粒子放入每个插槽。这个想法是粒子不会被disabled .

public class ParticleHolder : MonoBehaviour
{
    public ParticleSystem[] effects;
    public void playParticle(int particleNumber, Vector3 particlePos)
    {
        if (effects != null && effects[particleNumber] != null)
        {
            if (effects[particleNumber].isPlaying)
                effects[particleNumber].Stop();
            ParticleSystem tempPart = Instantiate(effects[particleNumber], particlePos, new Quaternion()) as ParticleSystem;
            tempPart.Play();
        }
    }
}

现在,将以下代码添加到Example脚本中的代码中:

ParticlesContainer particle;

Start()函数中:

particle = GameObject.Find("ParticlesHolder").GetComponent<ParticlesContainer>();

OnCollisionEnter()函数中:

particle.playParticle(0, transform.position);

在此示例中,数组中的第一个粒子将播放。

如果有两个粒子,则 01 都是要传入的有效值。如果有3粒子,则012是要传入的三个值。

就像您拥有public void SetDamage(int a_damage)函数一样,您可以添加public void SetParticle(int particleId)函数来设置要播放的粒子。