Unity - 将输入滑动到旋转

时间:2014-07-17 23:01:37

标签: c# android unity3d touch

我目前正在尝试为Android游戏实现轮形菜单。 当用户将手指向上或向下移动屏幕的y轴时,菜单应旋转。

向上滑动 - >逆时针旋转

向下滑动 - >顺时针旋转

我可以通过触摸输入旋转菜单,但问题如下: 每次手指触摸显示屏时,旋转都会重置。

E.g。您可以向上滑动,菜单旋转并保持原位。但是当你想再次向上滑动以进一步旋转时,旋转会重置并重新开始。

我想问题很简单,但是我尝试了很多东西而且没有任何变化。

我的代码:

class{

    // ...

    void Update(){

        if(Input.touches.Length > 0 && Input.GetTouch(0).phase == TouchPhase.Moved){
                transform.rotation *= Quaternion.AngleAxis(Input.GetTouch(0).deltaPosition.y, Vector3.forward);
        }
    }
}

提前致谢!

1 个答案:

答案 0 :(得分:1)

您需要一个变量来存储当前旋转,只需在每次更新时添加角度变化。

public float angle;

void Update() {
    if ( Input.touches.Length > 0 && Input.GetTouch(0).phase == TouchPhase.Moved ) {
        angle += Input.GetTouch(0).deltaPosition.y;
        transform.rotation *= Quaternion.AngleAxis( angle, Vector3.forward );
    }
}