unity3d 快速高效的检查
示例
尽可能避免不必要的操作和方法调用,尤其是在每秒多次调用的方法中,例如Update。
距离/范围检查
比较距离时使用sqrMagnitude代替magnitude。这避免了不必要的sqrt操作。请注意,在使用时sqrMagnitude,右侧也必须平方。
if ((target.position - transform.position).sqrMagnitude < minDistance * minDistance))
边界检查
可以通过检查对象Collider/Renderer边界是否相交来粗略检查对象的相交。该Bounds结构还具有方便的Intersects方法,可帮助确定两个边界是否相交。
Bounds还可以帮助我们计算对象之间实际(表面到表面)距离的近似值(请参阅参考资料Bounds.SqrDistance)。
注意事项
边界检查对于凸形对象确实非常有效,但是对凹形对象的边界检查可能导致更高的不准确性,具体取决于对象的形状。
使用Mesh.bounds不推荐,因为它返回局部空间界限。使用MeshRenderer.bounds代替。
热门推荐
10 儿子立冬祝福语简短独特
11 对当兵的祝福语简短
12 侄儿高考试祝福语简短
13 伴郎红包祝福语朋友简短
14 媳妇生日简短祝福语朋友
15 公司年会祝福语简短最好
16 元旦感恩祝福语简短大全
17 红包祝福语简短10字
18 周六早晨祝福语简短