1

我正在使用带有 MixedRealityToolkit 中的 KeyboardInputField UI 元素的键盘预制件,当我在构建中选择一个 KeyboardInputFields 时,我会同时弹出键盘预制件和系统键盘。我使用这两种方法制作的早期版本没有显示系统虚拟键盘,但我不知道我可以更改什么来导致这种情况。我正在为 Unity 2017.2.1f1 使用 unity 2017.2.0p2-MRTP5 和 MixedRealityToolkit。(这是我与之交谈的 Microsoft 代表所建议的)我正在创建一种身临其境的体验,并将 Unity 构建类型设置为 D3D 而不是 XMAL。

4

2 回答 2

0

您的输入组件实际上继承了InputFieldnamespace: UnityEngine.UI.

当您激活输入动作时,Windows 会自动调用系统内置键盘。

除非您避免使用 UnityEngine.UI.InputFieldComponent,否则禁用键盘是不可撤销的。

您可以做的是自己编辑脚本。

于 2018-02-09T09:15:04.987 回答
0

我在 MixedRealityToolkit 的错误报告中找到了解决方案

ivan2007:
“我的应用程序遇到了同样的问题。Unity 文档说:

Windows 应用商店应用:在通用 Windows 10 应用上,触摸屏键盘仅在支持触摸输入的基于 XAML 的应用中受支持。

我的应用程序使用的是 Build Type D3D 而不是 xaml,所以这是第一个奇怪的事情。

但是,由于显示了键盘,我们可以尝试禁用触摸输入支持。

为此,我们可以定义一个由 BaseInputModule 使用的新 BaseInput,其中 touchSupported 被覆盖并设置为 false。

BaseInputModule 有一个受保护的属性 m_InputOverride,我们可以使用它来告诉 unity 使用新的 BaseInput。

也就是说,作为临时解决方法,我制作了附加脚本,可以添加到场景的 EventSystem 游戏对象或另一个游戏对象(在后一种情况下,您必须使用当前输入模块设置字段 BaseInputModule)。

就我而言,它似乎可以工作(未显示本机键盘)。
Unity 2017.3.0f3 with HMD
有人可以尝试这种解决方法,以便我们更有信心使用它吗?
谢谢”

https://github.com/Microsoft/MixedRealityToolkit-Unity/files/1710401/HideUnityTouchScreenKeyboard.zip

https://github.com/Microsoft/MixedRealityToolkit-Unity/files/1713278/HideUnityTouchScreenKeyboardC.4.zip

于 2018-02-14T06:36:25.880 回答