1

我正在尝试让 Vizux M400 的触摸板在 Unity 中工作。Vuzix 在 Android 上运行,我知道例如触摸板向前滑动是使用 android 键码 KEYCODE_DPAD_RIGHT (22) 处理的。

我现在如何将此键码映射到 Unity 中的键码,以便我可以访问它?我听说我可能需要为此创建一个插件,但我不知道从哪里开始创建这样的插件。(侧面信息:在 Unity 中,触摸屏上的点击被接收为 Mouse0,但无法识别用 2 根手指点击。所以我猜这些默认情况下没有映射)

任何帮助表示赞赏,谢谢你!

4

2 回答 2

1

我没有设备,所以我很难测试。通常,您可以使用以下方法检查任何可识别设备的 KeyCode。

// Put this in Update OR OnGUI
if (Input.anyKeyDown)
{
    Event e = Event.current;
    if (e.isKey)
    {
        Debug.Log(e.keycode.ToString())
    }
}

找到 keycode 后,使用以下代码检查状态:

KeyCode KEYCODE_DPAD_RIGHT = (KeyCode)(<insert your found keycode>)
if (SystemInfo.deviceModel.ToLower().Contains("vuzix"))
{
    if (Input.GetKeyDown(KEYCODE_DPAD_RIGHT))
    {
        // Do anything
    }
}

编辑 1

我相信您可以通过明确告诉 Unity 检查不同的 KeyCode 来实现此功能:

        for (int i = 0; i < 1000; i++)
        {
            try
            {
                if (Input.GetKeyDown((KeyCode)i))
                {
                    j++;
                    dText.text = j +" with: "+ i.ToString();
                    Debug.Log("Working");
                    break;
                }
            }
            catch
            {
            }
        }

编辑 2

在更新和垃圾邮件中运行此代码,单击您的按钮和滑动/触摸操作。您可能会收到一个提示,表明该操作已被识别,并且您可以确认这些操作实际上已默认映射到某些键码。

于 2021-10-25T10:42:33.233 回答
1

解决方案只是停用 Vuzix M400s 触摸板的鼠标功能。它可以在设备设置中完成。

因此,这些是触摸板的 KeyCode:

    private const KeyCode _oneFingerTapKeyCode = (KeyCode)330;
    private const KeyCode _oneFingerHoldKeyCode = (KeyCode)319;
    private const KeyCode _oneFingerSwipeBackKeyCode = (KeyCode)276;
    private const KeyCode _oneFingerSwipeForwardKeyCode = (KeyCode)275;
    private const KeyCode _oneFingerSwipeUpKeyCode = (KeyCode)273;
    private const KeyCode _oneFingerSwipeDownKeyCode = (KeyCode)274;
    private const KeyCode _twoFingerTapKeyCode = (KeyCode)27;
    private const KeyCode _twoFingerHoldKeyCode = (KeyCode)278;
    private const KeyCode _twoFingerSwipeForwardKeyCode = (KeyCode)127;
    private const KeyCode _twoFingerSwipeBackKeyCode = (KeyCode)8;

我已经在不同线程的某个地方看到了它们,但我认为它们不起作用,但这只是鼠标输入。

于 2021-10-26T07:04:20.907 回答