尽可能避免不必要的操作和方法调用,尤其是在每秒多次调用的方法中,例如Update。
比较距离时使用sqrMagnitude代替magnitude。这避免了不必要的sqrt操作。请注意,在使用时sqrMagnitude,右侧也必须平方。
if ((target.position - transform.position).sqrMagnitude < minDistance * minDistance))
可以通过检查对象Collider/Renderer边界是否相交来粗略检查对象的相交。该Bounds结构还具有方便的Intersects方法,可帮助确定两个边界是否相交。
Bounds还可以帮助我们计算对象之间实际(表面到表面)距离的近似值(请参阅参考资料Bounds.SqrDistance)。
边界检查对于凸形对象确实非常有效,但是对凹形对象的边界检查可能导致更高的不准确性,具体取决于对象的形状。
使用Mesh.bounds不推荐,因为它返回局部空间界限。使用MeshRenderer.bounds代替。