二维向量和三维向量
Vector3 a = new Vector3(1f, 1f, 1f);
Vector2 b = new Vector2(1f, 1f);
向量标准化成单位向量的API: “ .normalized ”
Vector3 a = new Vector3(4f, 3f, 0f);
Vector3 b = a.normalized;
Debug.Log("标准化后=" + b.ToString("F3"));//显示三位小数
向量的静态常量
Vector3 a = Vector3.right;//Vector3(1, 0, 0);
Vector3 a = Vector3.up; //Vector3(0, 1, 0);
Vector3 a = Vector3.forward;//Vector3(0, 0, 1);
向量加、减、点乘和叉乘
//Vector3 c = a + b;
//Vector3 c = a - b;
c = Vector3.Dot(a, b);
c = Vector3.Cross(a, b);
向量相减得到新的向量,求长度能得到两个对象的距离的API:“ .normalized ”
GameObject target = GameObject.Find("Target file");
Vector3 Position1 = target.transform.position;
Vector3 Position2 = this.transform.position;
Vector3 Direction = Position1 - Position2;
// _ = Vector3.Distance(Position1, Position2);
Debug.Log("Direction=" + Direction.magnitude);
向量夹角运算,求两个向量的夹角的API:” .SignedAngle(a, b, Vector3.forward) “
Vector3 a = new Vector3(4f, 3f, 1f);
Vector3 b = new Vector3(-2f, 5f, 7f);
float Angle = Vector3.SignedAngle(a, b, Vector3.forward);
//(向量a,向量b,向量c)从a到b之间以c为轴
Debug.Log("从向量a到b以Z轴(0,0,1)forward为轴的夹角=" + Angle);
使用向量旋转将物体朝向某一物体,position2物体指向position1物体,
API: ” 。Rotate() “
GameObject target = GameObject.Find("Target file");
Vector3 Position1 = target.transform.position;
Vector3 Position2 = this.transform.position;
float Angle = Vector3.SignedAngle(Position1, Position2, Vector3.forward);
//(Position1向量,Position2向量,轴向量)从Position1到Position2之间以Vector3.forward为轴
this.transform.Rotate(0,0,Angle);
//输入x,y,z轴需要旋转的欧拉角
通过: ” .WorldToScreenPoint(Target); “ 来获取Target在主摄像机下(屏幕上)的坐标(像素)
Vector3 Target = this.transform.position;
Vector3 Screenpos = Camera.main.WorldToScreenPoint(Target);
Debug.Log("对象在屏幕上的坐标="+Screenpos);//显示的值是像素