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

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

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值