【发布时间】:2017-12-11 09:00:21
【问题描述】:
我正在寻找一种简单的解决方案,即在触摸手势上沿 z 轴顺时针/逆时针旋转 2d 对象。
这是我尝试过的,但它不能正常工作
这里是代码 sn-p :
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));
}
【问题讨论】:
-
您能告诉我们,它是如何工作不正常的吗?
-
它不够平滑,它的旋转取决于它放置在哪个象限。
-
您希望如何进行轮换?当用户左右拖动手指时,你想旋转对象吗?还是应该让物体朝向手指的方向?
-
@Smilediver : 第一个概念.. 我的意思是如果我向左拖动手指,它应该逆时针和顺时针旋转以便向右拖动手指