物体方位判断:Vector3计算物体角度与方位 u3d学习总结笔记本

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;
//目标局部坐标系向量 = 本物体.父物体.变换位置从世界坐标到局部坐标(目标.世界坐标) - 本物体局部坐标

//主要是把世界坐标转换到父物体坐标系(自身的局部坐标系),使得自身与目标位于同一坐标系下。
//方便计算与目标物体的:角度计算,方位判断,局部旋转,局部移动

 

你可能感兴趣的:(u3d总结笔记)