Vector3在构造函数中可以引入三个参数直接赋值
Vector3.Distance(Vector3 a,Vector3 b) 算出a和b两个点之间的距离
Vector3.magnitude(非静态函数)算出向量之间的膜,多用于计算两个物体之间的距离。
Mathf类是数学公式类,可以从里面调用方法或变量来进行数学计算。
float value = Vector3.Dot(Vector3,Vector3)计算两个向量之间的点乘。
点乘用来判断距离,传入的第一个参数和第二个参数均为向量
第一个参数为想要获得的想要判断的起点的局部方向向量,比如正前,正上,正右方向
第二个参数为通过终点方向减去起点方向得到的由起点位置指向终点位置的向量
方法返回的结果为,假设一个无限大的平面,这个平面垂直与第一个参数向量的方向,也就是平面的正方向等于设定的方向,然后将平面设置在第二个参数向量的起点位置,判断第二个向量终点位置距离这个平面最近的点的距离
举例:存在Cube1和Cube2,将Cube2作为Cube1的子物体,然后将Cube2的坐标设置为(0,0,50),然后将Cube1随意旋转到任意角度,然后将Cube2从Cube1的子物体中移除出来
Vector3.Dot(Cube1.transform.forward,Cube2.transform.position - Cube1.transform.position) 的值为50,此时,将编辑器中轴朝向改为局部,无论如何改变Cube2中的X轴和Y轴的值,方法返回的值均为50
总结:这个方法得到的结果,如果参数一为起点正前方向,参数二为终点减去起点得到的向量,那么结果就等同于将终点作为起点的子物体时,结果为终点局部坐标的Z值,如果为参数一为正上方,则结果为局部坐标的Y值
Vector3 value = Vector3.Cross(Vector3,Vector3)计算两个向量之间的叉乘
叉乘是用来获取与参数中两个向量垂直的向量方向的方法,两个参数均为向量
在三维坐标系中,两条无限长无限粗的直线只要不平行就一定会有且只有一个相交点,然后以相交的点为中心,两条以相交点为中心保留方向的直线可以创建一个平面,这个方法可以返回一个正垂直与这个平面的向量,这个向量与平面的夹角始终为90°
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
↑↑↑↑↑↑↑↑通过返回值使物体进行移动↑↑↑↑↑↑↑↑↑↑