找回密码
 注册帐号

扫一扫,访问微社区

alayeshi Unity粒子之灭火功能

1
回复
219
查看
[ 复制链接 ]
排名
2855
昨日变化

76

主题

348

帖子

1675

积分

Rank: 9Rank: 9Rank: 9

UID
54986
好友
11
蛮牛币
3580
威望
0
注册时间
2014-11-12
在线时间
553 小时
最后登录
2019-12-9

专栏作家

2019-12-2 15:19:10 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 alayeshi 于 2019-12-2 15:19 编辑

好久没在蛮牛写文章记录了,平常很少用到粒子系统。按自己的方法写了一个功能,记录一下。
需求是用水灭掉火焰。所以水的粒子要与火焰的粒子发生碰撞时执行灭火事件。效果如图:



首先从火焰角度思考:

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

回复

使用道具 举报

0

主题

12

帖子

14

积分

Rank: 1

UID
337346
好友
0
蛮牛币
5
威望
0
注册时间
2019-12-7
在线时间
2 小时
最后登录
2019-12-8
6 天前 显示全部楼层
挺好看的耶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则