Unity Google VR-从Android设备获取旋转,偏航和俯仰值

zack_falcon

我正在将我的一个简单项目转换为VR游戏。当前,这只是会向前缩放的摩托车,玩家可以使用A或D(或左右)来控制周期。

到目前为止,这是我的代码:

void Start () {
    cycleSphere = GetComponent<Rigidbody>();
}

void Update () {
    inputX = Input.GetAxis("Horizontal");
}

void FixedUpdate () {
    if (currentSpeed < maxSpeed)
        currentSpeed += acceleration;

    if (currentSpeed > 0)
        cycleSphere.transform.Rotate (0, inputX, 0);

    cycleSphere.velocity += transform.forward * currentSpeed;
}

我已经导入了GoogleVR SDK v1.70.0并添加了预制件,该预制件使我可以在手机中以VR方式查看游戏,甚至可以环顾四周而无需触摸代码。

我要这样做,以便如果玩家向左或向右倾斜他的头,则循环将朝相应的方向转动。我怎么做?我用Input.Gyro吗?

汤姆

之前我做过类似的事情,我在Virtual Reality中制作了Pacman,在其中倾斜头会引导玩家(在这种情况下,将头向左倾斜,以使耳朵触碰肩膀,会引导玩家,反之亦然)。

我做到了 Input.acceleration

例如,您可以执行以下操作:

void Update()
{
    transform.Rotate(0f, Input.acceleration.x * acceleratorSensitivity, 0f);
}

基本上,您将设备旋转X轴(这就是您的头部倾斜),应用您的灵敏度(更高的灵敏度意味着更快的旋转),并相应地旋转您的变换!:-)

我还认为这种方法比使用陀螺仪更好,因为并非所有设备都包含陀螺仪,但是大多数设备都包含加速度计(从根本上讲,它会旋转屏幕)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章