快速高效的检查
尽可能避免不必要的操作和方法调用,尤其是在一秒钟内多次调用的方法,如 Update。
距离/范围检查
比较距离时,请使用 sqrMagnitude 代替 magnitude。这避免了不必要的 sqrt 操作。请注意,使用 sqrMagnitude 时,右侧也必须是方形的。
if ((target.position - transform.position).sqrMagnitude < minDistance * minDistance))
边界检查
可以通过检查它们的 Collider / Renderer 边界是否相交来粗略地检查对象交叉点。Bounds 结构还有一个方便的 Intersects 方法,它有助于确定两个边界是否相交。
Bounds 还帮助我们计算物体之间实际 (表面到表面)距离的近似值 (见 Bounds.SqrDistance )。
注意事项
边界检查对于凸对象非常有效,但对凹面对象的边界检查可能会导致更高的不准确性,具体取决于对象的形状。
建议不要使用 Mesh.bounds,因为它返回本地空间边界。请改用 MeshRenderer.bounds。