什么是向量
- 一個數學串列,表示各個維度上有向位移
- 一個有大小有方向的物理量
- --大小就是向量的模長,
- --方向描述了空間中向量的指向,
- 可以表示物體的位置和方向,
向量的形式

向量的大小(模)
- 向量各分量平方和的平方根,
- ·公式:2
x2+y2+z2
- API: float dis=vector.magnitude;
- 模的平方vector.sqrMagnitude
- 因為平方根的計算耗時長,所以效率高于magnitude,
void Demo1()
{
Vector3 pos = t2.transform.position;
//求模長 三種方法
float m01 = Mathf.Sqrt(Mathf.Pow(pos.x, 2) + Mathf.Pow(pos.y, 2) + Mathf.Pow(pos.z, 2));
float m02 = pos.magnitude;
float m03 = Vector3.Distance(Vector3.zero, pos);
Debug.DrawLine(Vector3.zero, t2.transform.position);
}
向量的方向
- ·獲取向量方向也稱“標準化向量”,或“歸一化向量”;即獲取該向量的單位向量,
- ·單位向量:大小為1的向量,
- 公式:V/|V|
- ·幾何意義:將該向量拉長或者縮短,使模長等于1
- .API : Vector3 vector2=vector1.normalized;,
- -- vector2為vector1的單位向量
- -- vector1.Normalize();將vector1自身設定為單位向量
void Demo2()
{
Vector3 pos = t2.transform.position;
//獲取向量方向
Vector3 n01 = pos / pos.magnitude;
Vector3 n02 = pos.normalized;
Debug.DrawLine(Vector3.zero, pos);
Debug.DrawLine(Vector3.zero, n02,Color.red);
}

向量相減
- ·等于各分量相加減
- ·公式:[x?,y?,z?]-[x?,y?,z?]=[x?-x?,y?-y?,z?-z?]
- 幾何意義:向量a與向量b相減,結果理解為以b的終點為始點,以a的終點為終點的向量,方向由b指向a,
- ·應用:計算兩點之間的距離和相對方向,
- 兩條向量相減的結果向量方向指向被減,但是結果向量的起始點是Vector3.zero

void Demo3()
{
Vector3 relativeDirection = t1.transform.position - t2.transform.position;
//方向 指向被減向量(前面的)
//大小 兩點間距
//注意 實際位置要平移到
Debug.DrawLine(Vector3.zero, relativeDirection);
}

//t3沿著relativeDirection方向移動
t3.transform.Translate(relativeDirection.normalized);
//relativeDirection.normalized 獲取方向,避免兩個物體間距對速度造成影響
向量相加
- 等于各分量相加和,
- 公式:[x?,y?,z?] +[x?,y?,z?]=[x?+x?,y?+y?,z?+z?]
- 幾何意義:向量a與向量b相加,平移使b的始點與a的終點重合,結果為以a的始點為始點,以b的終點為終點的向量,
- 應用:物體移動

代碼與相減同理
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/390482.html
標籤:其他

