0
如果在父节点被禁用时如何播放粒子系统效果?Unity如果父母被禁用时如何播放粒子系统效果?
我想在我的障碍位置上发挥粒子系统效应。问题是,我的粒子,如果我的对象的孩子,当我禁用父(对象)粒子系统得到的禁用它,并没有发挥影响
我怎样才能在相同的位置障碍物以及障碍物何时被禁用/销毁。
如果在父节点被禁用时如何播放粒子系统效果?Unity如果父母被禁用时如何播放粒子系统效果?
我想在我的障碍位置上发挥粒子系统效应。问题是,我的粒子,如果我的对象的孩子,当我禁用父(对象)粒子系统得到的禁用它,并没有发挥影响
我怎样才能在相同的位置障碍物以及障碍物何时被禁用/销毁。
创建GameObject调用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)
函数来设置要播放的粒子。
我想要一个普通的粒子在一个普通的物体上发挥作用,而一个爆炸粒子在特殊的物体上发挥作用 – John
@Groude我知道你的问题。你读过答案了吗?是你做的吗? – Programmer
是的,没有任何反应 – John