【发布时间】:2021-05-24 21:16:37
【问题描述】:
我正在尝试围绕鼠标旋转我的 2d 对象。这是我拥有的代码:
void Update()
{
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 direction = mousePosition - transform.position;
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0, 0, angle);
// Debug.Log(angle);
}
我的对象是一个箭头,默认情况下是向下的,所以在我开始脚本之前,我将它的 z 旋转设置为 90,所以它朝右。如果我删除 transform.rotation 线,显示的角度将是对,当我的光标在上面时它说 90,在左边它说 180 等等。所以我的问题是,为什么我需要在角度上添加 90 度才能使它真正起作用?为什么这个版本不起作用?谢谢!
【问题讨论】:
标签: c unity3d rotation game-physics