Jac*_*ack 1 javascript sendmessage unity-game-engine unity-webgl
我遇到了 WebGLInput 的非常奇怪的行为。我有一个使用 WebGL Unity 构建的网站。默认情况下,WebGL 会捕获所有键盘输入。但是,我必须在 html 中使用输入字段。
所以首先我禁用 WebGLInput 并且它可以工作:
private void Start()
{
#if !UNITY_EDITOR && UNITY_WEBGL
WebGLInput.captureAllKeyboardInput = false;
#endif
}
Run Code Online (Sandbox Code Playgroud)
然后使用下面的函数向 unity 发送一条消息来切换键盘输入。它首先会启用它,但不会禁用它!
document.addEventListener('click', function(e) {
if (e.target.id == "#canvas") {
this.FocusCanvas("1");
} else {
this.FocusCanvas("0");
}
}.bind(this), false);
Run Code Online (Sandbox Code Playgroud)
这是我用来切换 WebGLInput 的统一代码:
public void FocusCanvas(string focus)
{
#if !UNITY_EDITOR && UNITY_WEBGL
if (focus == "0") {
WebGLInput.captureAllKeyboardInput = false;
} else {
WebGLInput.captureAllKeyboardInput = true;
}
#endif
}
Run Code Online (Sandbox Code Playgroud)
我尽可能地调试了它,并且我非常确定该方法已被触发并且所有内容都已执行。但禁用 captureAllKeyboardInput 不起作用。有人遇到过这样的问题吗?如果是这样,请告诉我我做错了什么?
| 归档时间: |
|
| 查看次数: |
1503 次 |
| 最近记录: |