WebGLInput.captureAllKeyboardInput странное поведение.

Я испытываю очень странное поведение 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 ответ


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


Есть идеи?

10000