包含此页的版本:
不含此页的版本:
碰撞(Collisions) 模块控制粒子如何与游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表在场景场景包含游戏的环境和菜单。将每个唯一的场景文件视为一个独特的关卡。在每个场景中,您可以放置环境、障碍物和装饰,实质上是分块设计和构建游戏。更多信息
请参阅术语表.
当其他对象围绕粒子系统通过在场景中生成大量小型 2D 图像并为其设置动画来模拟流体实体(如液体、云和火焰)的组件。更多信息
请参阅术语表,当粒子与这些对象交互时,效果通常更有说服力。例如,水或碎片应该被坚固的墙阻挡,而不是简单地穿过它。使用碰撞当物理引擎检测到两个游戏对象的碰撞器接触或重叠时,当至少一个游戏对象具有刚体组件并且处于运动状态时,就会发生碰撞。更多信息
请参阅术语表模块启用时,粒子可以与场景中的对象发生碰撞。
可以设置粒子系统,使其粒子与任何粒子碰撞碰撞体一种不可见的形状,用于处理对象的物理碰撞。碰撞体不需要与对象的网格体完全相同的形状 - 在游戏中,粗略的近似值通常更有效且难以区分。更多信息
请参阅术语表在场景中选择世界场景中所有对象所在的区域。通常用于指定坐标是世界相对坐标,而不是对象相对坐标。
请参阅术语表模式。还可以使用 碰撞对象(Collides With) 属性根据碰撞体所在的层禁用碰撞体。弹出窗口还具有 平面(Planes) 模式选项,允许您向场景添加一组不需要碰撞体的平面。此选项对于简单的地板、墙壁和类似对象很有用,并且处理器开销低于 世界(World) 模式。
启用平面模式后,可以通过 Planes 属性添加转换列表(通常是空游戏对象)。平面在对象的局部 XZ 平面中无限延伸,正 Y 轴表示平面的法线向量。为了帮助开发,平面将显示为Gizmo与场景中的游戏对象关联的图形叠加层,并显示在场景视图中。内置场景工具(如移动工具)是 Gizmo,您可以使用纹理或脚本创建自定义 Gizmo。某些 Gizmo 仅在选择游戏对象时绘制,而其他 Gizmo 则由编辑器绘制,而不管选择了哪个游戏对象。更多信息
请参阅术语表,无论对象是否具有任何可见的网格Unity 的主要图形原语。网格体构成了 3D 世界的很大一部分。Unity 支持三角或四边形多边形网格。Nurbs、Nurms、Subdiv 曲面必须转换为多边形。更多信息
请参阅术语表他们自己。 Gizmo可以显示为线框网格或实体平面,也可以缩放。但是,缩放仅适用于可视化效果 - 碰撞平面本身在场景中无限延伸。
启用碰撞后,粒子的大小有时会成为一个问题,因为当粒子与表面接触时,粒子的图形可能会被裁剪。这可能导致粒子在停止或弹跳之前看起来“沉入”表面的一半。“半径缩放”属性通过定义粒子的近似圆形半径(占其实际大小的百分比)来解决此问题。此大小信息用于防止剪切并避免下沉效果。
当粒子表示实体对象时,“阻尼”和“反弹”属性非常有用。例如,砾石在投掷时往往会从坚硬的表面上弹开,但雪球的粒子在碰撞过程中可能会失去速度。生命周期损失(Lifetime Loss) 和 最小杀伤速度(Min Kill Speed) 有助于减少碰撞后残留粒子的影响。例如,火球在空中飞行时可能会持续几秒钟,但在碰撞后,单独的火焰粒子应该会迅速消散。
如果启用了 发送碰撞消息(Send Collision Messages),你还可以从脚本中检测粒子碰撞。脚本可以附加到带有粒子系统的对象,也可以附加到带有碰撞器的对象,或两者兼而有之。通过检测碰撞,你可以将粒子用作游戏中的活动对象,例如射弹、魔法咒语和道具。有关更多详细信息和示例,请参阅 MonoBehaviour.OnParticleCollision 的脚本参考页面。
世界碰撞(World Collision) 模块具有 碰撞质量(Collision Quality) 属性,你可以将其设置为 高(High)、中(Medium) 或 低(Low)。当 碰撞质量(Collision Quality) 设置为 中(静态碰撞体)或 低(静态碰撞体)时,碰撞使用体素网格(3D网格上的值)来缓存以前的碰撞,以便在以后的帧中快速重复使用。
此缓存由每个体素中的一个平面组成,其中平面表示该位置的碰撞表面。在每一帧上,Unity 都会检查粒子位置的平面缓存,如果有,Unity 会将其用于碰撞检测Unity 执行的自动过程,用于确定具有刚体和碰撞器组件的移动游戏对象是否与任何其他碰撞器接触。更多信息
请参阅术语表.否则,它会询问物理系统。如果返回冲突,则将其添加到缓存中,以便在后续帧上快速查询。
这是一个近似值,因此可能会发生一些遗漏的碰撞。你可以减小 体素大小(Voxel Size) 值来帮助解决这个问题;但是,这样做会使用额外的内存,并且效率较低。
中和低之间的唯一区别是允许系统每帧查询物理系统的次数。低每帧的查询数少于中。一旦超过每帧预算,则仅缓存用于任何剩余的粒子。这可能会导致错过的冲突增加,直到缓存被更全面地填充。