1.角度计算
2.方位判断
3.坐标系转换transform.InverseTransformPoint();
//==============================================
1.角度计算
Vector3 PlayerToPoint = Point.position - transform.position;
//主角指向点的向量
float temp = Vector3.Angle(transform.forward,PlayerToPoint);
//得出相对主角正面左右,点的角度,返回值都为正数
2.方位判断
//判断左右方向
if(Vector3.Dot(transform.right, PlayerToPoint)<0){
//在左边
print("往左 ");
}else if(Vector3.Dot(transform.right, PlayerToPoint)>0){
//在右边
print("往右 ");
}else{
}
//判断前后方向
if(Vector3.Dot(transform.forward, PlayerToPoint)<0){
//在后边
print("往后 ");
}else if(Vector3.Dot(transform.forward, PlayerToPoint)>0){
//在前边
print("往前 ");
}else{
}
//判断上下方向
if(Vector3.Dot(transform.up, PlayerToPoint)<0){
//在下边
print("往下 ");
}else if(Vector3.Dot(transform.up, PlayerToPoint)>0){
//在上边
print("往上 ");
}else{
}
3.坐标系转换transform.InverseTransformPoint();
Vector3 TargetlocalPosition = transform.parent.InverseTransformPoint(Target.position)-transform.localPosition;
//目标局部坐标系向量 = 本物体.父物体.变换位置从世界坐标到局部坐标(目标.世界坐标) - 本物体局部坐标
//主要是把世界坐标转换到父物体坐标系(自身的局部坐标系),使得自身与目标位于同一坐标系下。
//方便计算与目标物体的:角度计算,方位判断,局部旋转,局部移动
版权声明:本文为qq_40346899原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。