传统计算

经典初高中知识之三角函数,使用Mathf.Atan2(y,x),函数计算出弧度后再将结果*180/Math.PI,就可以将弧度转化为角度了,这里的起始位置是(1,0),即从第一象限开始。

float rotationZ = Mathf.Atan2(direction.y, direction.x) * 180 / Mathf.PI;

一步到位

Unity贴心的准备好了角度计算的函数,Vector2.Angle(Vector2 from, Vector2 to)
Angle是不带符号的角度,即0到180度SignedAngle是带符号的,即-180到180度
from指起始位置,可以指定任意位置开始,传统计算从(1,0)即第一象限开始,而这个函数从(0,1)即第二象限开始也是允许的。
to指结束位置,输入终点位置即可。

float rotationZ = Vector2.SignedAngle(Vector2.up, direction);
最后修改:2024 年 05 月 16 日
如果觉得我的文章对你有用,请随意赞赏