第一个参数 colliders可以通过“+”号自动创建一个,再把它移动到需要的位置和物体下面,注意:拖出来的时候Z有时候会是10,需要手动调整 isTrigger可勾可不勾,通过这个collider就可以检测粒子的碰撞,相当于手动给他添加一个检测层,让粒子去与这个层发生碰撞
后面的四个函数,需要用哪个就选择callback,需要销毁就选kill
RadiusScale:是粒子的碰撞器大小,是个圆形
Visualize bounds:是否在场景中显示bounds
private void Start()
{
ps = transform.GetComponent<ParticleSystem>();
}
//粒子触发的回调函数
private void OnParticleTrigger()
{
if (!ps.isPlaying) return;
List<ParticleSystem.Particle> enter = new List<ParticleSystem.Particle>();
List<ParticleSystem.Particle> inside = new List<ParticleSystem.Particle>();
//particleSystemTriggerEventType为枚举类型,Enter,Exit,Inside,Outside,对应粒子系统属性面板上的四个选项\\
int numEnter = ps.GetTriggerParticles(ParticleSystemTriggerEventType.Enter, enter);
int numInside = ps.GetTriggerParticles(ParticleSystemTriggerEventType.Inside, inside);
if (numEnter > 0)
{
Debug.Log("numEnter: " + numEnter);
}
else
{
Debug.Log("没有进入的粒子");
}
if (numInside > 0)
{
Debug.Log("numInside: " + numInside);
}
else
{
Debug.Log("没有粒子");
}
ps.SetTriggerParticles(ParticleSystemTriggerEventType.Enter, enter);
ps.SetTriggerParticles(ParticleSystemTriggerEventType.Inside, inside);
}