U1L13-2——物理系统之碰撞器

碰撞器(Collider)

碰撞体组件可定义用于物理碰撞的游戏对象的形状。碰撞体是不可见的,其形状不需要与游戏对象的网格完全相同。网格的粗略近似方法通常更有效,在游戏运行过程中难以察觉。
最简单(并且也是处理器开销最低)的碰撞体是__原始__碰撞体类型。在 3D 中,这些碰撞体为盒型碰撞体球形碰撞体胶囊碰撞体。在 2D 中,可以使用 2D 盒型碰撞体2D 圆形碰撞体。可以将任意数量的上述碰撞体添加到单个游戏对象以创建__复合碰撞体__。

碰撞体 - Unity 手册

这里还有另外一个:触发检测函数里的Collider

碰撞体参数和知识点

imageimageimage​​​

  • 碰撞器知识点

    • 知识回顾

      • 碰撞产生的必要条件:两个物体都有碰撞器、至少一个物体有刚体
      • 碰撞器表示物体的体积(形状)刚体会利用体积进行碰撞计算
        模拟真实的碰撞效果,产生力的作用
    • 3D碰撞器种类

      • 盒状
      • 球状
      • 胶囊
      • 网格
      • 轮胎
      • 地形
    • 共同参数

      • Is Trigger - 是否是触发器

        如果启用此属性
        则该碰撞体将用于触发事件,并被物理引擎忽略
        主要用于进行没有物理效果的碰撞检测

      • Material - 物理材质

        可以确定碰撞体和其它对象碰撞时的交互(表现)方式。

      • Center - 碰撞体在对象局部空间中的中心点位置

    • 常用碰撞器

      • BoxCollider - 盒状碰撞器

        • Size - 碰撞体在X、Y、Z方向上的大小
      • Sphere Collider - 球状碰撞器

        • Radius - 球形碰撞体的半径大小
      • Capsule Collider - 胶囊碰撞器

        • Radius - 胶囊体的半径
        • Height - 胶囊体的高度
        • Direction - 胶囊体在对象局部空间中的轴向
    • 异形物体使用多种碰撞器组合 - 刚体对象的子对象碰撞器信息参与碰撞检测

    • 不常用碰撞器

      • Mesh Collider - 网格碰撞器

        • Convex
          勾选此复选框可启用 Convex。如果启用此属性,该 Mesh Collider 将与其他 Mesh Collider 发生碰撞。
          Convex Mesh Collider 最多 255 个三角形。

        • Cooking Options - 启用或禁用影响物理引擎对网格处理方式的网格烹制选项。

          • None - 禁用下方列出的所有 Cooking Options

          • Everything - 启用下方列出的所有 Cooking Options。

          • Cook for Faster Simulation - 使物理引擎烹制网格以加快模拟速度。

            启用此设置后,这会运行一些额外步骤,以保证生成的网格对于运行时性能是最佳的。
            这会影响物理查询和接触生成的性能。禁用此设置后,物理引擎会使用更快的烹制速度,并尽可能快速生成结果。
            因此,烹制的 Mesh Collider 可能不是最佳的。

          • Enable Mesh Cleaning - 使物理引擎清理网格。

            启用此设置后,烹制过程会尝试消除网格的退化三角形以及其他几何瑕疵。此过程生成的网格更适合于在碰撞检测中使用,往往可生成更准确的击中点。

          • Weld Colocated Vertices - 使物理引擎在网格中删除相等的顶点。

            启用此设置后,物理引擎将合并具有相同位置的顶点。这对于运行时发生的碰撞反馈十分重要。

        • Mesh - 引用需要用于碰撞的网格。

      • Wheel Collider - 环状 碰撞器

        • Mass - 车轮的质量

        • Radius - 车轮的半径

        • Wheel Damping Rate - 这是应用于车轮的阻尼值

        • Suspension Distance - 车轮悬架的最大延伸距离(在局部空间中测量)。悬架始终向下延伸穿过局部 Y 轴。

        • Force App Point Distance - 此参数定义车轮上的受力点。

          此距离应该是距车轮底部静止位置的距离(沿悬架行程方向),以米为单位。
          当 forceAppPointDistance = 0 时,受力点位于静止的车轮底部。较好的车辆会使受力点略低于车辆质心。

        • Suspension Spring
          悬架尝试通过增加弹簧力和阻尼力来到达目标位置 (Target Position)

          • Spring - 弹簧力尝试到达目标位置

            值越大,悬架达到目标位置就越快

          • Damper - 抑制悬架速度

            值越大,悬架弹簧移动就越慢

          • Target Position - 悬架沿悬架距离 (Suspension Distance) 的静止距离

            1 对应于完全展开的悬架,0 对应于完全压缩的悬架。默认值为 0.5,与常规汽车的悬架行为匹配。

        • Forward Friction - 车轮向前滚动时轮胎摩擦的特性。
          Sideways Friction - 车轮侧向滚动时轮胎摩擦的特性

          • Extremum Slip - 曲线的极值点。

          • Extremum Value - 曲线的极值点。

          • Asymptote Slip - 曲线的渐近点。

          • Asymptote Value - 曲线的渐近点。

          • Stiffness - Extremum Value 和 Asymptote Value 的乘数(默认值为 1)

            改变摩擦力的刚度。将此值设置为零将完全禁用车轮的所有摩擦力。通常在运行时修改刚度以使用脚本来模拟各种地面材质。

        • 注意
          不必通过转动或滚动 WheelCollider 对象来控制汽车;附加了 WheelCollider 的对象应始终相对于汽车本身固定

      • Terrain Collider - 地形碰撞器

        • Terrain Data - 地形数据
        • Enable Tree Colliders - 选中此属性时,将启用树碰撞体