我正在做一个Google Cardboard项目,现在我有一个Android演示,您可以在我用UNITY 3D构建的特殊场景中环顾四周,一切正常,看起来不错,但是我真正想要的是:

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

我在网上找到了一些脚本,但是我不知道如何在UNITY项目中使这些脚本正常工作。

有人可以帮我进一步吗?

最佳答案

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


在Unity5中,导入资产包“标准资产/字符”。
从该程序包创建RigidBodyFPSController.prefab的实例。
删除它的子对象“ MainCamera”
导入Google cardboard unitypackage
用CardboardMain.prefab替换在步骤3中删除的“ MainCamera”
更新或修改RigidbodyFirstPersonController.cs GetInput()方法的副本。


带有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仅支持检测磁铁的“喀哒”声。如果您想按住磁铁前进,则建议使用Unity3D资产存储中的Cardboard Controls+

关于android - UNITY 3D的磁铁脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26928904/

10-10 01:12