在Unity3D中,有時候我們需要計算二維向量的夾角。二維向量夾角一般在0~180度之前,可以直接調用Vector2.Angle(Vector2 from, Vector2 to)來計算。
但是在有些場景,我們需要-180~180度的夾角,此時可以用下面的腳本進行計算:
1 float VectorAngle(Vector2 from, Vector2 to) 2 { 3 float angle; 4 5 Vector3 cross=Vector3.Cross(from, to); 6 angle = Vector2.Angle(from, to); 7 return cross.z > 0 ? -angle : angle; 8 }
上述腳本利用了向量叉乘的性質,注意Unity3D中的坐標系是左手系,故判斷叉乘方向要用左手定則。
