1、获得鼠标位置
Vector3 mousePos = Input.mousePosition;
2、首先屏幕是二维的,因此需要将物体的位置转换为屏幕坐标
Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
3、要计算相关角度,这里要分清楚方向,最简单的方式就是一开始让对象背对摄像机,即z轴向前,否则旋转方向与鼠标位置不一致,需要进行角度的转换才能正确显示,此处以最简单的方式讨论:
通常是将游戏对象作为原点,当z轴向前时,所求角度即是途中所示角度:
float x1 = mousePos.x - pos.x;
float y1 = mousePos.y - pos.y;
float angle = 90f; ;
if (y1 != 0) {
angle = Mathf.Atan(x1 / y1);
angle = (angle / Mathf.PI) * 180;
}
此处要注意三点:
(1)Mathf.Atan求出的是弧度,要将其转换为角度
(2)分母不能为0,要特殊判断,因此初始化角度为90°
(3)求