快速高效的檢查
儘可能避免不必要的操作和方法呼叫,尤其是在一秒鐘內多次呼叫的方法,如 Update
。
距離/範圍檢查
比較距離時,請使用 sqrMagnitude
代替 magnitude
。這避免了不必要的 sqrt
操作。請注意,使用 sqrMagnitude
時,右側也必須是方形的。
if ((target.position - transform.position).sqrMagnitude < minDistance * minDistance))
邊界檢查
可以通過檢查它們的 Collider
/ Renderer
邊界是否相交來粗略地檢查物件交叉點。Bounds
結構還有一個方便的 Intersects
方法,它有助於確定兩個邊界是否相交。
Bounds
還幫助我們計算物體之間實際 (表面到表面)距離的近似值 (見 Bounds.SqrDistance
)。
注意事項
邊界檢查對於凸物件非常有效,但對凹面物件的邊界檢查可能會導致更高的不準確性,具體取決於物件的形狀。
建議不要使用 Mesh.bounds
,因為它返回本地空間邊界。請改用 MeshRenderer.bounds
。