爲了簡化計算,a、b向量在計算時均用其單位向量,向量單位化 a.normalized
//向量起點
Vector3 vec = Input.mousePosition - mousePos;
if (vec.magnitude > 20)//移動一定距離後計算向量
{
var angleY = Mathf.Acos(Vector3.Dot(vec.normalized, Vector2.up)) * Mathf.Rad2Deg;//與Y軸夾角
var anglex = Mathf.Acos(Vector3.Dot(vec.normalized, Vector2.right)) * Mathf.Rad2Deg;//與X軸夾角
if (angleY <= 45)
{
//上
}
else if(angleY >=135)
{
//下
}
else if (anglex <= 45)
{
//右
}
else if(anglex>=135)
{
//左
}
}