UNITY 3D的磁铁脚本

时间:2014-11-14 11:23:49

标签: android unity3d magnetometer virtual-reality google-cardboard

我正在开发一个Google Cardboard项目,现在我有一个Android演示版,你可以在我使用UNITY 3D构建的特殊场景中环顾四周,一切都运行良好&看起来不错,但我真正想要的是:

当我按下Google Cardboard磁铁按钮时,我想向前走。

我在网上找到了一些脚本,但我不确切知道如何让这些脚本在我的UNITY项目中运行。

有人可以帮助我进一步解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

假设您能够正确读取磁铁输入。这就是我做FPS样式控制器脚本的方法:

  1. 在Unity5中导入资产包标准资产/字符。
  2. 从该包中创建RigidBodyFPSController.prefab的实例。
  3. 删除它的子对象," MainCamera"
  4. 导入Google cardboard unitypackage
  5. 更换" MainCamera"您在步骤#3中使用CardboardMain.prefab
  6. 删除了
  7. 更新或修改RigidbodyFirstPersonController.cs GetInput()方法的副本。
  8. 使用Google Cardboard向前移动回退的GetInput():

    private Vector2 GetInput()
    {
        Vector2 input = new Vector2
        {
            x = Input.GetAxis("Horizontal"),
            y = Input.GetAxis("Vertical")
        };
    
        // If GetAxis are empty, try alternate input methods.
        if (Math.Abs(input.x) + Math.Abs(input.y) < 2 * float.Epsilon)
        {
            if (IsMoving) //IsMoving is the flag for forward movement. This is the bool that would be toggled by a click of the Google cardboard magnet
            {
                input = new Vector2(0, 1); // go straight forward by setting positive Vertical
            }
        }
        movementSettings.UpdateDesiredTargetSpeed(input);
        return input;
    }
    

    Google的SDK仅支持检测磁铁&#34;点击&#34;。如果您想要按住磁铁继续前进,我建议您使用Unity3D资源商店中的Cardboard Controls+