小编OCh*_*esO的帖子

Unity WebGL - 防止 <Canvas> 吃掉所有鼠标/键盘输入?(HTML 输入字段)

统一 5.4

构建一个 Unity WebGL 应用程序(不是游戏)来处理 Unity 方面的所有 3D 内容,并且所有 UI 都是使用 HTML/CSS/JS 构建的。默认情况下,WebGLInput.captureAllKeyboardInput 设置为 true,这会导致任何需要键盘(文本)输入的输入字段被破坏,因为任何键盘控件都会被 Unity 自动占用而不是进入输入字段。正在做

#if !UNITY_EDITOR && UNITY_WEBGL
WebGLInput.captureAllKeyboardInput = false;
#endif
Run Code Online (Sandbox Code Playgroud)

修复了输入字段的问题,但导致统一忽略所有键盘输入,即使在元素被聚焦后,但添加

tabindex="1"
Run Code Online (Sandbox Code Playgroud)

修复它,以便 HTML 输入字段上的键盘输入在聚焦时工作,并且 Unity WebGL 应用程序内的键盘控件在聚焦时也工作。(这是所有文档:https : //docs.unity3d.com/ScriptReference/WebGLInput-captureAllKeyboardInput.html)。所以这一切正常。

但是,Unity WebGL 应用程序仍然会导致某些使用鼠标(而非键盘)控件的输入字段出现问题。也就是说,我在 input type="range" 字段(HTML5 滑块)和 input type="number (使用键盘输入数字有效,但鼠标上下点击无效)上注意到了它。

有什么解决方法可以解决这个问题吗?我基本上需要防止 Unity WebGL 画布不自动接受所有鼠标输入,除非首先单击/聚焦元素(就像键盘控件的工作方式一样)。在 Unity 方面有什么要改变的来解决这个问题吗?或者我是否需要编写一些自定义 JavaScript 来处理所有输入并确定它是用于 Unity 场景还是用于 HTML UI?

html input unity-game-engine unity-webgl

3
推荐指数
1
解决办法
4389
查看次数

标签 统计

html ×1

input ×1

unity-game-engine ×1

unity-webgl ×1