unity之粒子碰撞触发方法

需求是用水灭掉火焰。所以水的粒子要与火焰的粒子发生碰撞时执行灭火事件。效果如图:

 

首先从火焰角度思考:

火焰的粒子要监测是否被撞到,所以要给它加上碰撞体。同时勾选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的。这样火焰碰撞就完成了。

 

  • 9
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Unity中,粒子系统是一种强大的特效工具,可以创建各种动画效果,包括粒子碰撞。要在粒子系统中实现粒子之间的碰撞效果,你可以使用以下步骤: 1. 创建一个粒子系统:在Unity的Hierarchy视图中点击右键,选择"Effects",然后选择"Particle System"来创建一个新的粒子系统。 2. 配置粒子系统:通过Inspector视图调整粒子系统的属性。你可以设置颜色、大小、速度等等。确保启用了碰撞选项,这样粒子之间才能发生碰撞。 3. 添加碰撞模块:在Inspector视图中,展开"Particle System"的组件列表,找到"Collision"模块。启用该模块后,你可以配置碰撞的参数,如碰撞形状、碰撞力、碰撞事件等。 4. 配置碰撞形状:在"Collision"模块中,你可以选择不同的碰撞形状,如球体、盒体、平面等。根据你的需求选择适当的形状,并调整其大小和位置。 5. 调整碰撞参数:在"Collision"模块中,你可以调整碰撞力、弹力、摩擦力等参数来定义粒子之间的碰撞效果。根据你的需求进行调整,实现期望的碰撞效果。 6. 处理碰撞事件:在"Collision"模块中,你可以指定碰撞事件的响应。例如,当粒子发生碰撞时,你可以播放音效、触发特定的动画或粒子效果等。根据你的需求来处理碰撞事件。 通过以上步骤,你可以在Unity中实现粒子之间的碰撞效果。记得调整参数以获得最佳的视觉效果,并根据需求处理碰撞事件。祝你成功!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值