Unity学习笔记:Vector3相关知识

60 篇文章 2 订阅

Vector3在构造函数中可以引入三个参数直接赋值

Vector3.Distance(Vector3 a,Vector3 b) 算出a和b两个点之间的距离

Vector3.magnitude(非静态函数)算出向量之间的膜,多用于计算两个物体之间的距离。

Mathf类是数学公式类,可以从里面调用方法或变量来进行数学计算。

Vector3.Dot(Vector3,Vector3)计算两个向量之间的点乘。

点乘可以通过第一个参数传入自己局部正方向,第二个参数传入自己指向目标位置的向量来判断物体在你的前方还是后方,同理可判断左右,上下。而且可以用来判断两个向量之间的角度差异,对比两个物体的正方向相差多少度。

Vector3.Cross(Vector3,Vector3)计算两个向量之间的叉乘

叉乘可以判断位置距离自己的两个方向的值,例如传入正方向就能判断目标位置距离自己的左右偏移量和上下偏移量

叉乘是通过传入的两个方向构成一个面,然后返回一个垂直于该面的向量。返回向量的上或下根据第一个参数和左手螺旋定则决定(用四根手指指向第一个参数,然后4根朝着第二个参数的方向弯曲,大拇指的指向就是新向量的朝向。)(第二个参数大多情况需要归一化)

Vector3.Angle (Vector3,Vector3)返回一个float的值,计算由0点指向两个物体的射线之间的角度。

Vector3.Angle(b.position-a.position,a.transform.forward)计算b物体相对于a物体正方向的角度;

a.position=Vector3.Lerp(a.position,b.position,time)使a物体不断向b物体前进(渐慢),最后一位参数为移动距离的百分比(1为最大,直接到达,0.1则为瞬间移动到距离目标位置的十分之一后停止,但是根据自身位置不断变换可以不停移动)(Slerp可以在前进时加一个弧度)

a.position=Vector3.MoveTowards(a.position,b.position,1.0f);让a物体以1.0的速度缓慢移动到b物体。

a.position.forword = b.position-a.position 让a的正方向始终指向b

a.position.forword=Vector3.RotateTowards(a.position.forword,b.posion-a.position,Time.deletime,a.positon.manitude);通过方法使a物体的正方向始终朝向b物体。第三个参数是转动速度,第四个参数是膜长

a.transfrom.position=Vector3.SmoothDamp(a.transfrom.position,b.transfrom.position,ref Vector3,float time)使a物体平滑移动到b物体,可以根据b物体的位置变换实时变化,第三个参数返回当前的速度(视为返回值),第四个参数是前进到目标位置所需时间(时间越长越慢)(多用于摄像机移动)

a.normalized 归一化,只保留方向,把值变为1

↑↑↑↑↑↑↑↑通过返回值使物体进行移动↑↑↑↑↑↑↑↑↑↑

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值