public float GetAngle(Vector3 from, Vector3 to)
{
from.x -= to.x;
from.z -= to.z;
float deltaAngle = 0;
if (from.x == 0 && from.z == 0)
{
deltaAngle = 0;
}
else if (from.x == 0 && from.z < 0)
{
deltaAngle = 0;
}
else if (from.x == 0 && from.z > 0)
{
deltaAngle = 180;
}
else if (from.x > 0 && from.z == 0)
{
deltaAngle = 180;
}
else if (from.x < 0 && from.z == 0)
{
deltaAngle = 180;
}
else if (from.x > 0 && from.z > 0)
{
deltaAngle = 180;
}
else if (from.x < 0 && from.z < 0)
{
deltaAngle = 0;
}
else if (from.x < 0 && from.z > 0)
{
deltaAngle = 180;
}
else if (from.x > 0 && from.z < 0)
{
deltaAngle = 360;
}
float angle = Mathf.Atan(from.x / from.z) * Mathf.Rad2Deg + deltaAngle;
return angle;
}
unity 角度
于 2022-09-09 14:44:13 首次发布