找回密码
 注册帐号

扫一扫,访问微社区

alayeshi Unity粒子碰撞之灭火

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

76

主题

348

帖子

1674

积分

Rank: 9Rank: 9Rank: 9

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

专栏作家

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

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

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

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



首先从火焰角度思考:

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


回复

使用道具 举报

排名
2855
昨日变化

76

主题

348

帖子

1674

积分

Rank: 9Rank: 9Rank: 9

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

专栏作家

楼主 4 天前 显示全部楼层
为啥发出来就没图了
回复 支持 反对

使用道具 举报

排名
2855
昨日变化

76

主题

348

帖子

1674

积分

Rank: 9Rank: 9Rank: 9

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

专栏作家

楼主 4 天前 显示全部楼层
有毒啊,编辑的时候有图片,发表了图就被吃了。。。再发一篇
回复 支持 反对

使用道具 举报

0

主题

43

帖子

53

积分

Rank: 2Rank: 2

UID
335753
好友
0
蛮牛币
71
威望
0
注册时间
2019-11-12
在线时间
10 小时
最后登录
2019-12-4
4 天前 显示全部楼层
嗯嗯 有点看不懂
回复

使用道具 举报

0

主题

30

帖子

32

积分

Rank: 1

UID
331927
好友
0
蛮牛币
0
威望
0
注册时间
2019-9-18
在线时间
2 小时
最后登录
2019-12-5
昨天 14:59 显示全部楼层
我要蛮牛币啊
回复

使用道具 举报

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

本版积分规则