需求是用水灭掉火焰。所以水的粒子要与火焰的粒子发生碰撞时执行灭火事件。效果如图:
首先从火焰角度思考:
火焰的粒子要监测是否被撞到,所以要给它加上碰撞体。同时勾选collision里面的Send Collision messages,把坐标改成world,collision mode 改成3D。
collider with选项中可以选择和某一类物体发生碰撞,如果选择Everything就是和所有的碰撞体进行碰撞。
然后将下面的代码绑定到该粒子的物体上,该代码是来监测碰撞的
//火焰被碰撞时调用
void OnParticleCollision(GameObject other)
{
Debug.Log("我是" + other.name);if (other.tag == "Water")
{
Debug.Log("灭火开始");}
}
上述代码会在有物体碰到该粒子的碰撞体的时候被调用。 当然碰撞的物体(也就是上面提到的水)也是需要有collider的。这样火焰碰撞就完成了。
标签:触发,粒子,Log,物体,碰撞,unity,火焰,other From: https://blog.51cto.com/u_8378185/5990806