【问题标题】:How to use KEYCODE_DPAD_CENTER key code in UnityUnity中如何使用KEYCODE_DPAD_CENTER键码
【发布时间】:2019-01-28 15:58:21
【问题描述】:

我正在将 Unity 应用程序移植到 Vuzix M300 Android 耳机,但设备顶部的选择按钮在我的 Unity 应用程序中不起作用。根据 Vuzix 开发支持页面,它使用了 Unity 看不到的关键代码 KEYCODE_DPAD_CENTER。有什么办法可以解决这个问题,因为我们需要让该按钮在我们的应用程序中工作。

我也试过 KeyCode.JoystickButton0, KeyCode.Return, KeyCode.Enter, KeyCode.Menu, Input.GetButtonDown("Fire1"), KeyCode.Space...

对此的任何帮助将不胜感激!

【问题讨论】:

  • 不幸的是,Unity 文档没有可用的键码及其相应的 int 值的概览图...至少在 Android 中,KEYCODE_DPAD_CENTER 映射到 23,所以也许如果你发现哪个 Unity KeyCode 映射到23你也许可以使用它。
  • 你可以通过iterating over the enum打印KeyCode的所有枚举值
  • 这不是我会知道的语言 ^^ 但似乎those poeple 以某种方式设法将KEYCODE_DPAD_CENTER 映射到自定义(到目前为止未设置)KeyCode 10 就像KeyCode DPAD_CENTER = (KeyCode)10; 也许你有尝试和错误一点,直到你得到正确的值,但你可以尝试使用 event.keyCode 直接访问代码
  • (我进行了枚举检查,在 Unity 中没有值为 1023 的 KeyCode,所以也许你可以同时检查两者)
  • @derHugo 非常感谢。我通过你提供的中文链接知道的。

标签: c# android unity3d keycode vuzix


【解决方案1】:

感谢 derHugo 提供的链接,这是我想出的解决方案:

public class VuzixSelectButton : MonoBehaviour
{  
    KeyCode DPAD_CENTER = (KeyCode)10;

    void Update ()
    {
        VuzixSelect();   
    }

    /// <summary>
    /// Detects Vuzix M300 select button presses
    /// </summary>
    private void VuzixSelect()
    {
        if (SystemInfo.deviceModel.ToLower().Contains("vuzix"))
        {
            if (Input.GetKeyDown(DPAD_CENTER))
            {
                var es = EventSystem.current;
                GameObject obj = es.currentSelectedGameObject;
                ExecuteEvents.Execute(obj, new PointerEventData(EventSystem.current), ExecuteEvents.pointerClickHandler);
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多