访问官方文档总是太慢,所以我把它们完整复制下来以供查询。建议访问官方手册Collision模块
该模块控制粒子如何与场景中的游戏对象碰撞。使用第一个下拉菜单定义碰撞设置是否应用于平面或世界。如果选择 World__,请使用 Collision Mode__ 下拉菜单来定义碰撞设置是否应用于 2D 或 3D 世界。
平面模块属性
财产
功能
飞机弹出菜单
选择平面模式。
飞机
用于定义碰撞平面的可扩展变换列表。
可视化
选择是否希望场景视图中的碰撞平面辅助图标显示为线框网格或实体平面。
比例平面
用于可视化的平面尺寸。
挫伤
粒子碰撞后损失的速度比例。
弹跳
碰撞后粒子从表面反弹的速度分数。
终生损失
粒子碰撞后损失的总寿命的比例。
最小杀伤速度
碰撞后移动速度低于此速度的粒子将从系统中移除。
最大杀戮速度
碰撞后运动速度超过此速度的粒子将从系统中移除。
半径比例
允许将粒子碰撞球体的半径调整为更接近粒子形状的可见边缘。
发送碰撞消息
如果启用此属性,则可以通过 OnParticleCollision 函数从脚本中检测粒子碰撞。
可视化边界
在场景视图中将每个粒子的碰撞边界渲染为线框形状。
世界模块属性
财产
功能
世界弹出菜单
选择世界模式。
碰撞模式
3D 或 2D。
挫伤
粒子碰撞后损失的速度比例。
弹跳
碰撞后粒子从表面反弹的速度分数。
终生损失
粒子碰撞后损失的总寿命的比例。
最小杀伤速度
碰撞后移动速度低于此速度的粒子将从系统中移除。
最大杀戮速度
碰撞后运动速度超过此速度的粒子将从系统中移除。
半径比例
2D 或 3D 设置。
碰撞质量
使用下拉菜单设置粒子碰撞的质量。此设置会影响有多少粒子可以通过碰撞器。在较低质量水平下,粒子有时会穿过对撞机,但需要较少的计算资源。
高的
当“碰撞质量”设置为“高”时,碰撞始终使用物理系统来检测碰撞结果。此设置是最占用资源但也是最准确的选项。
中(静态碰撞器)
当“碰撞质量”设置为“中”(静态碰撞体)时,碰撞使用一组体素来缓存以前的碰撞,以便在未来的帧中更快地重用。有关此缓存的更多信息,请参阅下文。
中和低之间的唯一区别是粒子系统每帧查询物理系统的次数。中度每帧的查询量比低度更多。
请注意,此设置仅适用于从不移动的静态碰撞器。
低(静态碰撞器)
当“碰撞质量”设置为“低”(静态碰撞体)时,碰撞使用一组体素来缓存以前的碰撞,以便在未来的帧中更快地重用。有关此缓存的更多信息,请参阅下文。
中和低之间的唯一区别是粒子系统每帧查询物理系统的次数。中度每帧的查询数比低度多。
请注意,此设置仅适用于从不移动的静态碰撞器。
碰撞
粒子只会与选定图层上的对象发生碰撞。
最大碰撞形状
粒子碰撞可以包含的碰撞形状的数量。无关的形状将被忽略,地形优先。
启用动态碰撞器
也允许粒子与动态对象碰撞(否则仅使用静态对象)。
启用动态碰撞器
动态碰撞器是任何未配置为运动学的碰撞器(有关碰撞器类型的更多信息,请参阅碰撞器文档)。
选中此选项可将这些碰撞体类型包含在粒子碰撞时响应的对象组中。如果未选中此选项,粒子仅响应与静态碰撞器的碰撞。
体素尺寸
体素表示三维空间中规则网格上的值。当使用中等或低质量碰撞时,Unity 会在网格结构中缓存碰撞。此设置控制网格大小。较小的值提供更高的准确性,但使用更多内存并且效率较低。
注意:仅当“碰撞质量”设置为“中”或“低”时,才能访问此属性。
碰撞力
粒子碰撞后对物理碰撞器施加力。这对于用粒子推动碰撞器非常有用。
乘以碰撞角度
向碰撞体施加力时,根据粒子与碰撞体之间的碰撞角度缩放力的强度。掠角产生的力比正面碰撞小。
乘以粒子速度
向碰撞体施加力时,根据粒子的速度缩放力的强度。快速移动的粒子比较慢的粒子产生更大的力。
乘以粒径
向碰撞体施加力时3D角色,根据粒子的大小缩放力的强度。较大的颗粒比较小的颗粒会产生更大的力。
发送碰撞消息
如果选中此复选框3D道具,则允许通过 OnParticleCollision 函数从脚本检测粒子碰撞。
可视化边界
在场景视图中预览每个粒子的碰撞球体。
当其他对象围绕粒子系统时,通常是粒子与这些对象相互作用,使效果更加令人信服。例如,水或碎片应该被坚固的墙壁阻挡,而不是直接穿过墙壁。启用碰撞模块后,粒子可以与场景中的对象发生碰撞。
通过从弹出菜单中选择世界模式,您可以设置粒子系统,使其粒子与场景中的任何对撞机发生碰撞。或者,您可以使用 Collides With 属性根据碰撞器所在的图层禁用碰撞器。弹出菜单还有一个“平面”模式选项,可用于将一组不需要碰撞器的平面添加到场景中。此选项对于简单的地板、墙壁和类似对象非常有用,并且比世界模式具有更低的处理器开销。
启用 Planes 模式后,可以通过 Planes 属性添加一组变换(通常是空游戏对象)。该平面在对象的局部 XZ 平面中无限延伸,其中正 Y 轴表示平面的法向量。为了帮助开发,平面将在场景中显示为辅助图标,无论对象本身是否具有任何可见的网格。辅助图标可以显示为线框网格或实体平面,也可以缩放。然而,缩放仅适用于可视化;碰撞平面本身在场景中无限延伸。
启用碰撞后,粒子大小有时可能会成为一个问题,因为在与表面接触时其形状可能会被剪裁。这种情况可能会导致颗粒在停止或反弹之前在某种程度上“沉入”表面。 “半径比例”属性通过将粒子的近似圆形半径定义为其实际大小的百分比来解决此问题。该尺寸信息用于防止削波并避免下沉效应。
当粒子代表固体对象时,__Dampen__ 和 Bounce 属性非常有用。例如,砾石在抛出时往往会从坚硬的表面反弹,但雪球颗粒在撞击时可能会失去速度。寿命损失和最小杀伤速度有助于减少碰撞后残留颗粒的影响。例如,火球在空中飞行时可能会持续几秒钟,但撞击后unity官方文档,单个火焰颗粒应该很快消散。
如果启用 __Send Collision Messages__,则还可以从脚本检测粒子碰撞。脚本可以附加到具有粒子系统的对象和具有碰撞器的对象。通过检测碰撞,粒子可以用作游戏中的活动对象,例如导弹、魔法和能量提升。有关更多详细信息和示例,请参阅 MonoBehaviour.OnParticleCollision 脚本参考页。
世界碰撞质量
世界碰撞模块具有碰撞质量属性unity官方文档,可以设置为高、中或低。当“碰撞质量”设置为“中”(静态碰撞体)或“低”(静态碰撞体)时,碰撞使用一组体素(3D 网格上的值)来缓存以前的碰撞,以便在未来的帧中快速重用。
缓存由每个体素中的一个平面组成,其中该平面表示该位置处的碰撞表面。在每一帧上,Unity 都会检查缓存以查看是否存在该粒子位置的平面,如果有,Unity 将其用于碰撞检测。否则会查询物理系统。如果返回冲突,则将其添加到缓存中以便快速查询后续帧。
这是一个近似算法,因此可能会丢失一些碰撞。您可以通过减小 Voxel Size 值来帮助解决这个问题;然而,这样做会使用额外的内存并且效率较低。
中和低之间的唯一区别是系统每帧允许查询物理系统的次数。低每帧的查询数比中低。一旦超出每帧预算,缓存只能用于所有剩余的粒子。这可能会导致错过的冲突增加,直到缓存被更完全填满为止。
参加了免费注册试用和快速云迁移活动,可以抽50元京东卡一张~: