关于Unity粒子系统碰撞的几个坑

本文探讨Unity粒子系统在与碰撞器、射线和彼此碰撞时遇到的问题。官方文档指出,只有带有粒子系统或碰撞器的物体间才能发生碰撞。对于射线与粒子碰撞,由于两者皆无碰撞器,故无法检测。粒子间碰撞同样不支持。文中提供了针对这两种情况的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Unity粒子系统碰撞的几个坑

最近公司的项目正好要用到粒子系统的碰撞,所以特意研究了一下。在实践中遇到了很多问题,所以借此文记录一下学习的过程。而且学习过程中发现网上这方面文章极少,所以也算借这篇文章填补一下行业漏洞,顺道给自己和后来者一个参考。本人接触Unity时间也不算太长,如果下面哪里说的不对,欢迎各位大神纠正。
大量图片预警

粒子与碰撞器的碰撞

这一部分官方用户手册有很明确的说明,首先找到手册下图这一层级目录 Collision Module,点进去就能看到关于面板所有参数的介绍了:
官方用户手册粒子碰撞目录
这里我用的是Unity5.6.4的用户手册,是本地文件,所以就不贴链接了,而且我相信愿意看这篇文章的人,应该不至于找不到用户手册吧……
这篇手册已经讲得详细了,所以我们只讨论一些文章里没有提到的东西和提到了但是说得比较模糊的东西。点进去之后拉到文章最后你会看到这样一段关于粒子碰撞的介绍:
用户手册中关于碰撞回调的介绍
简单的说就是告诉你怎么用碰撞检测脚本,但是请注意它说的是 the object with the particle system, or the one with the Collider, or both 也就是说只有带有粒子系统或者带有碰撞器的物体之间可以碰撞,而且经过我的实践发现:只有一个带有碰撞器组件的物体和一个带有粒子系统并开启了粒子碰撞的物体之间碰撞才会触发碰撞事件,其他任何情况都无法触发粒子碰撞事件,如果您不信可以继续看下去。
我们先来看一下简单的一种情况,也就是官方提供的这种情况,同时也是网上在我写这篇文章之前能搜到的最多的一种情况。所以我尽量用最短的篇幅介绍,如果您除了这种情况不会用到其他情况,那看完这一小节后下面的就不用看了。
我们打开Unity直接实践:
新建一个场景,创建一个平面当地面,删掉原有摄像机(我们会用FPS控制器,自带相机),拖上来一个粒子(这里你随意拖一个粒子就好,我用的是一个火焰粒子),开启粒子碰撞,我的设置如下,其中 Radius Scale

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值