基于扫描的 CCD 是 **连续** 和 **连续动态** 模式下的 CCD 算法。
对于仅与静止的静态 碰撞体用于处理对象物理碰撞的不可见形状。碰撞体不需要与对象的网格完全相同形状 - 粗略的近似值通常更有效,并且在游戏过程中难以区分。 更多信息
参见 术语表(即,没有 Rigidbody 组件的游戏对象)发生碰撞的物理体,请使用 **连续** 模式。对于与移动的动态碰撞体(即,具有动态 Rigidbody 组件的游戏对象)发生碰撞的物理体,请使用 **连续动态** 模式。
**连续** 和 **连续动态** 是最精确的 碰撞当物理引擎检测到两个游戏对象的碰撞体接触或重叠时,就会发生碰撞,前提是至少有一个具有 Rigidbody 组件并且处于运动状态。 更多信息
参见 术语表 检测模式。但是,它们也是计算量最大的模式。此外,它们仅适用于因线性运动而发生的碰撞;它们无法检测因物理体旋转而发生的碰撞(例如,弹球发射器在枢轴上旋转时与球体发生碰撞)。
基于扫描的 CCD 使用时间冲击 (TOI) 算法来计算潜在的碰撞。为此,该算法会沿着对象当前速度下的前进轨迹“扫描”或检测。
在上图中
如果在对象移动方向上存在接触,则算法计算冲击时间,并将对象移动到该时间。该算法可以从此时间开始执行子步;最重要的是,它可以在冲击后重新计算速度,然后沿着新的轨迹重新扫描。
在上图中
基于扫描的 CCD 会对性能产生重大影响,尤其是在项目中广泛使用时。如果大量高速对象使用基于扫描的 CCD 并且彼此靠近,则 CCD 开销会迅速增加,因为 物理引擎模拟物理系统各个方面的系统,以便对象可以正确加速并受到碰撞、重力和其它力的影响。 更多信息
参见 术语表 必须执行更多扫描和更多 CCD 子步。
基于扫描的 CCD 的一个限制是它只能执行线性(或方向性)扫描,而不能执行角(或旋转)扫描,这意味着它无法预测物理体旋转时可能发生的碰撞。例如,弹球机中的发射器固定在一端,并围绕一个固定点旋转;它只有角运动,没有线性运动。如果您还需要考虑对象的旋转,请使用推测性 CCD。