我制作了这段代码,看看它是否在FOV中有效但是如果我在远方,如果我在他身边,那么返回的数字大于0,这意味着我&#当我不在的时候,在他面前。
Vector3 objectNormalized = Vector3.Normalize(transform.position);
Vector3 targetNormalized = Vector3.Normalize(target.position);
Vector3 forward = transform.TransformDirection(transform.forward);
Vector3 pos = targetNormalized - objectNormalized;
另外,我怎么能看到它是在墙后还是在另一个物体后面?我正在编写AI,所以我真的需要这个。
答案 0 :(得分:1)
为了检测您和对象之间是否没有对撞机,请从相机到对象中心执行physics raycast,并检查RaycastHit.collider.gameObject
是否是您要射向的对象。根据您的使用情况,您可能需要尝试一些光线投射到模型的不同部分。
至于在视野范围内,您有程序TestPlanesAABB
或基于事件的OnBecameVisible
和OnBecameInvisible
。如果您决定使用TestPlanesAABB
,请记住在相机移动时更新平面阵列,而不是像示例中那样开始。