【问题标题】:How to trigger "Fire2" button using bluetooth controller of Google Cardboard in Unity3d如何在 Unity3d 中使用 Google Cardboard 的蓝牙控制器触发“Fire2”按钮
【发布时间】:2018-03-29 20:38:36
【问题描述】:

我正在尝试使用 Unity3d 中的 google cardboard sdk 将对象转换为 VR 应用程序。我编写了一个脚本并比较了 Update 方法上的输入按钮。所以我的代码如下。

void Update () {

    if (Input.GetButtonDown("Fire1"))
    {
        onObjectDown();
    }

    if (Input.GetButtonDown("Fire2"))
    {
        onObjectExit();
    }

    if (Input.GetButtonDown("Fire3"))
    {
        onObjectExit();
    }

    if (dragging)
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        Vector3 rayPoint = ray.GetPoint(distance);
        transform.position = rayPoint;
    }
}

onObjectDown() & onObjectExit() 方法如下

public void onObjectDown()
{
    Debug.Log(name + " Game Object Down!");
    distance = Vector3.Distance(transform.position, Camera.main.transform.position);
    dragging = true;
}

public void onObjectExit()
{
    dragging = false;
    Debug.Log(name + " Game Object Exit!");
    GetComponent<Renderer>().material.color = originalColor;
}

此编码在桌面播放模式下完美运行。但是在模拟器上只有 onObjectDown 正在执行。这意味着只有“Fire1”按钮被按下。有谁知道如何通过蓝牙控制器从按钮“Fire2”和“Fire3”获取输入?

作为参考,我在项目中的输入设置如下

【问题讨论】:

    标签: unity3d google-cardboard google-vr google-vr-sdk


    【解决方案1】:

    蓝牙控制器上的按钮 1 您可以使用 Input.GetMouseButton(0) 或 Fire 1 进行初始化,因为它模拟了显示点击。但是另一个控制器按钮模拟(在我的情况下)Android 设备上的后退按钮,所以你可以使用 Input.GetKeyDown(KeyCode.Escape) 进行初始化。

    【讨论】:

    • 我只能从“FIRE 1”触发。我正在使用this controller
    • 尝试在其他应用程序中使用控制器,当您按下该按钮时会发生什么?您是否为 PC 或移动设备制作应用程序?您上面的输入设置适用于 PC 和 MAC,但 GVR SDK 主要适用于 Android 和 iOS 设备。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多