快速高效的檢查

儘可能避免不必要的操作和方法呼叫,尤其是在一秒鐘內多次呼叫的方法,如 Update

距離/範圍檢查

比較距離時,請使用 sqrMagnitude 代替 magnitude。這避免了不必要的 sqrt 操作。請注意,使用 sqrMagnitude 時,右側也必須是方形的。

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

邊界檢查

可以通過檢查它們的 Collider / Renderer 邊界是否相交來粗略地檢查物件交叉點。Bounds 結構還有一個方便的 Intersects 方法,它有助於確定兩個邊界是否相交。

Bounds 還幫助我們計算物體之間實際 (表面到表面)距離的近似值 (見 Bounds.SqrDistance )。

注意事項

邊界檢查對於凸物件非常有效,但對凹面物件的邊界檢查可能會導致更高的不準確性,具體取決於物件的形狀。

建議不要使用 Mesh.bounds,因為它返回本地空間邊界。請改用 MeshRenderer.bounds