我遇到了非常奇怪的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无效。有人遇到过这样的问题吗?如果是这样,请让我知道我在做什么错?
我找到了一个解决方案。无需切换。我只是禁用它,并将tabindex =“ 1”添加到画布。现在,键盘可以在输入字段中工作,并且在聚焦时可以在画布上工作。