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