我目前正在尝试为安卓游戏实现一个轮形菜单。 当用户在屏幕的 y 轴上向上或向下移动手指时,菜单应该旋转。
向上滑动-->逆时针旋转
向下滑动 --> 顺时针旋转
我可以通过触摸输入旋转菜单,但问题如下: 每次手指触摸显示屏时,旋转都会重置。
例如您可以向上滑动,菜单会旋转并保持在原位。但是,当您想要再次向上滑动以进一步旋转时,旋转会重置并重新开始。
我想问题很简单,但我尝试了很多东西,但没有任何改变。
我的代码:
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);
}
}
}
提前致谢!
最佳答案
您需要一个变量来存储当前旋转并简单地添加每次更新的角度变化。
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 );
}
}
关于c# - Unity - 滑动输入旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24814879/