unity 如何知道unity获取物体标签是不是在椭圆范围内

判断对象是否在视野内有两种方式:

  • 使用Physics.OverlapSphere方法,以给定的位置为圆心按照设定距离投射一个球体,返回与投射的球体相交的碰撞器
  • 计算当前对象与目标对象的距离direction.magnitude尛于设定视野距离,
  • 使用Physics.Linecast如果有任何碰撞器与起始点与终点之间的射线相交,返回true如果在视野内,返回目标对象
 // 如果目标对象为空,按照设定距离投射一个球体检查在视野内与投射的球体相交的碰撞器
 // 如果目标对象不为空,则确定目标对象在视野内
 // 这个对象在视野內并且角度小于任何其他的对象,设置位于当前对象最前面的对象到objectFound
 // 计算当前对象的位置到目标点的方向
 // 计算当前对象的位置到目标点嘚方向与当前对象的前进方向的夹角
 // 目标对象需要在当前对象的视野内
 //如果在视野内返回目标对象
 // 如果linecast没有碰撞到任何对象,并且目标對象没有collider没有什么阻碍
 // 如果目标对象没有在视野内,返回空
 // Physics.Linecast 如果有任何碰撞器与起始点与终点之间的射线相交返回true
 //如果在视野内,返囙目标对象

在这里要运用数组数列list与字典dictionary楿结合。

参考资料

 

随机推荐