您当前的位置: 首页 >  unity

虎冯河

暂无认证

  • 3浏览

    0关注

    112博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity 向一个方向移动多少距离

虎冯河 发布时间:2020-10-30 12:05:09 ,浏览量:3

一、获取一个向量(方向)

二、把获取到的向量normalized归一化,这个很重要。如果不normalized归一化,那么移动距离就会偏移。

向量归一化可以用比较通俗的话,比如B点到A点的方向: (-3.4, 2.5, -2.5),B点到A点的方向normalized归一化之后向量变成(-0.7, 0.5, -0.5)。我们物体的前方向是tranfrom.forward(0,0,1)如果我们乘以20那就是(0,0,20)Z轴方向增加20,

同样的如果我们的向量没有归一化,(-3.4, 2.5, -2.5)乘以20,就是(-68,50,-50),移动距离就会超过20。

三、自身坐标+(获取到的向量*距离)=终点(要移动的位置)

//获取B点到A点的方向 (A到B点的方向=B-A,B点到A点的方向=A-B)
Vector3 dir = targetTrans.position- transform.position;           
// dir.normalized向量归一化,乘以距离,得到一个新的向量(Unity单位是米) 
Vector3 moveDir = dir.normalized* distance;
//起点(自身位置)加上方向等于终点(要移动到的位置)                   
Vector3 moveToPos = transform.position + moveDir; 


          
//绘制射线
Debug.DrawLine(transform.position, moveToPos, Color.red);

 

图示

获取一个B点A点的方向

向量与向量归一化之后的区别

向量归一化之后

向量没有归一化

 

向这个向量(方向)移动多少距离。

如图所示移动距离10米,两点距离是7.85米。射线的长度,略超过A点。通过射线的长度可以看出来。

关注
打赏
1649935522
查看更多评论
立即登录/注册

微信扫码登录

0.0367s