0
我正在寻找一个简单的解决方案,沿触摸手势顺时针/逆时针旋转2d对象。unity2d沿z轴旋转一个游戏对象
这是我试过,但它不能正常工作
下面的代码片段:
void OnMouseDown()
{
Vector3 pos = Camera.main.ScreenToWorldPoint(transform.position);
pos = Input.mousePosition - pos;
baseAngle = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg;
baseAngle -= Mathf.Atan2(transform.right.y, transform.right.x) * Mathf.Rad2Deg;
}
void OnMouseDrag()
{
Vector3 pos = Camera.main.ScreenToWorldPoint(transform.position);
pos = Input.mousePosition - pos;
float angle = Mathf.Atan2(pos.y, pos.x) * Mathf.Rad2Deg - baseAngle;
transform.rotation = Quaternion.AngleAxis(angle, new Vector3(0, 0, 1));
}
你能告诉我们,它不能正常工作吗? – maZZZu 2014-11-21 06:49:49
它不够光滑,其旋转取决于放置哪个象限。 – Nikhil 2014-11-21 08:22:34
你想如何轮换工作?当用户拖动手指说左右旋转时,你想旋转对象吗?或者物体应该朝向手指的方向吗? – Smilediver 2014-11-22 01:21:40