关于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