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