Unity 如果父级被禁用,如何播放粒子系统效果?
Unity How to play a particle system effect if when the parent get's disabled?
如果父对象被禁用,如何播放粒子系统效果?
我想在我的障碍物位置播放粒子系统效果。问题是我的粒子如果是我对象的子对象,当我禁用父对象(对象)时,粒子系统会被它禁用并且不会发挥影响
如何在障碍物的相同位置以及障碍物被禁用/摧毁时播放效果。
创建名为 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);
在此示例中,将播放数组中的第一个粒子。
如果有两个粒子,0
和1
都是可以传入的有效值。如果有3
个粒子,那么0
,1
,2
是要传入的三个值。
就像你有public void SetDamage(int a_damage)
功能一样,你可以添加public void SetParticle(int particleId)
功能来设置播放哪个粒子。
如果父对象被禁用,如何播放粒子系统效果?
我想在我的障碍物位置播放粒子系统效果。问题是我的粒子如果是我对象的子对象,当我禁用父对象(对象)时,粒子系统会被它禁用并且不会发挥影响
如何在障碍物的相同位置以及障碍物被禁用/摧毁时播放效果。
创建名为 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);
在此示例中,将播放数组中的第一个粒子。
如果有两个粒子,0
和1
都是可以传入的有效值。如果有3
个粒子,那么0
,1
,2
是要传入的三个值。
就像你有public void SetDamage(int a_damage)
功能一样,你可以添加public void SetParticle(int particleId)
功能来设置播放哪个粒子。