快速高效的检查

尽可能避免不必要的操作和方法调用,尤其是在一秒钟内多次调用的方法,如 Update

距离/范围检查

比较距离时,请使用 sqrMagnitude 代替 magnitude。这避免了不必要的 sqrt 操作。请注意,使用 sqrMagnitude 时,右侧也必须是方形的。

if ((target.position - transform.position).sqrMagnitude < minDistance * minDistance))

边界检查

可以通过检查它们的 Collider / Renderer 边界是否相交来粗略地检查对象交叉点。Bounds 结构还有一个方便的 Intersects 方法,它有助于确定两个边界是否相交。

Bounds 还帮助我们计算物体之间实际 (表面到表面)距离的近似值 (见 Bounds.SqrDistance )。

注意事项

边界检查对于凸对象非常有效,但对凹面对象的边界检查可能会导致更高的不准确性,具体取决于对象的形状。

建议不要使用 Mesh.bounds,因为它返回本地空间边界。请改用 MeshRenderer.bounds