c# - Unity - 滑动输入旋转

标签 c# android unity-game-engine touch

我目前正在尝试为安卓游戏实现一个轮形菜单。 当用户在屏幕的 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/

相关文章:

c# - 如何在 EmguCV 中保存具有透明背景的图像

android - Facebook SDK for Unity on Android - 关于 FB.Login 回调的问题

c# - 哪个 DLL 包含 Microsoft.Powershell.Command 命名空间下的异常?

c# - 为什么 File.ReadAllBytes 结果与使用 File.ReadAllText 时不同?

java - OnListItemClick 无法正常工作

android - 如何在Android平台上使用OpenCV C++特定示例?

c# - 即使我在退出菜单时调用了 Cursor.Visible 函数,退出暂停菜单时我的光标仍然可见

iphone - 角色移动时 iOS FPS 低帧率,探查器显示 Physics.Simulate 占用 CPU 时间

c# - 如何在 Linq 中订购日期?

android - 使用 json 在两个微调器中填充省和市