WebGLInput.captureAllKeyboardInput странное поведение. Может включить, но не может отключить - PullRequest
0 голосов
/ 25 марта 2020

Я испытываю очень странное поведение 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 не работает. Кто-нибудь сталкивался с такой проблемой? если да, пожалуйста, дайте мне знать, что я делаю не так?

1 Ответ

0 голосов
/ 25 марта 2020

Я нашел плавное решение для этого. Нет необходимости переключать его. Я просто отключил его и добавил tabindex = "1" на холст. Теперь клавиатура работает в полях ввода и на холсте, когда сфокусирована.

...