WebGLInput.captureAllKeyboardInput奇怪的行为。可以启用,但不能禁用

问题描述 投票:0回答:1

我遇到了非常奇怪的WebGLInput行为。我有一个带有WebGL Unity构建的网站。默认情况下,WebGL捕获所有键盘输入。但是,我必须在html中使用输入字段。

因此,一开始我禁用了WebGLInput,它起作用了:

private void Start()
{
#if !UNITY_EDITOR && UNITY_WEBGL 
     WebGLInput.captureAllKeyboardInput = false;
#endif
}

然后使用下面的功能,我向统一发送一条消息以切换键盘输入。它首先可以启用它,但不会禁用它!

document.addEventListener('click', function(e) {
    if (e.target.id == "#canvas") {
        this.FocusCanvas("1");
    } else {
        this.FocusCanvas("0");
    }
}.bind(this), false);

这是我切换WebGLInput的统一代码:

public void FocusCanvas(string focus)
{
    #if !UNITY_EDITOR && UNITY_WEBGL
        if (focus == "0") {
            WebGLInput.captureAllKeyboardInput = false;
        } else {
            WebGLInput.captureAllKeyboardInput = true;
        }
    #endif
}

我已尽力对其进行了调试,而且我非常确定该方法会被触发并且一切都会执行。但是禁用captureAllKeyboardInput无效。有人遇到过这样的问题吗?如果是这样,请让我知道我在做什么错?

javascript unity3d sendmessage unity-webgl
1个回答
0
投票

我找到了一个解决方案。无需切换。我只是禁用它,并将tabindex =“ 1”添加到画布。现在,键盘可以在输入字段中工作,并且在聚焦时可以在画布上工作。

© www.soinside.com 2019 - 2024. All rights reserved.