1.在自身的前后:
Vector3.Dot (transform.forward, target.position-transform.position)
返回值为正时,目标在自己的前方,反之在后方
2.在自身的左右:
Vector3.Dot(transform.right, target.position-transform.position)
返回值为正时,目标在自己的右方,反之在左方
3.在自身上下:
Vector3.Dot(transform.up, target.position-transform.position)
返回值为正时,目标在自己的上方,反之在下方
//判断目标是否在Z轴方向的X轴水平面的上方
public bool isTargetAtForward(Vector3 targetPos)
{
Vector3 turretToTargetDir = targetPos - this.transform.position;
float turretToTargetDir_Dot_turretRightDir = Vector3.Dot(this.transform.forward, turretToTargetDir.normalized);
double midValue = Math.Round(turretToTargetDir_Dot_turretRightDir, 2);
// Debug.Log("midValue" + midValue);
if (midValue >= -0.001)
{
return true;
}
return false;
}
本文详细介绍了如何在Unity游戏开发中利用Vector3.Dot函数来判断目标相对于当前对象的位置,包括前后、左右和上下方向。通过具体代码示例,展示了如何实现这一功能,适用于游戏场景中对目标位置进行快速准确判断的需求。

6368

被折叠的 条评论
为什么被折叠?



