我目前正在尝试为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);
}
}
}
提前致谢!
答案 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 );
}
}