Unity WebGL переопределить compatibilityCheck callback - PullRequest
0 голосов
/ 13 мая 2019

В настоящее время я работаю над проектом Unity WebGL, который поддерживает только WebGL 2.0. Проект не работает с WebGL 1.0.

Теперь я хочу понять, что, если браузер не поддерживает WebGL 2.0, вместо контекста WebGL будет отображаться изображение.

Для функции UnityLoader.instantiate() есть функция обратного вызова, если WebGL не поддерживается. К сожалению, мой код не вызывается в этой функции.

    UnityLoader.instantiate("unityContainer", "Build/Build.json", {
        compatibilityCheck: function(unityInstance, onsuccess, onerror) {
            if (!UnityLoader.SystemInfo.hasWebGL) {
                unityInstance.popup("Your browser does not support WebGL", [{text: "OK", callback: onerror}]);
                document.getElementById("unityContainer").style.display = "none";
                document.getElementById("fallbackHeader").style.display = "block";
            }

Заранее спасибо! С наилучшими пожеланиями, Лоуренс Триппен

1 Ответ

0 голосов
/ 13 мая 2019

Вы можете просто попробовать это

const supportsWebGL2 = !!document.createElement('canvas').getContext('webgl2');

Так что, возможно изменить ваш шаблон WebGL на что-то вроде

const supportsWebGL2 = !!document.createElement('canvas').getContext('webgl2');
if (!supportsWebGL2) {
   // do something to display message
} else {
   UnityLoader.instantiate("unityContainer", "Build/Build.json", {
        compatibilityCheck: function(unityInstance, onsuccess, onerror) {
            if (!UnityLoader.SystemInfo.hasWebGL) {
                unityInstance.popup("Your browser does not support WebGL", [{text: "OK", callback: onerror}]);
                document.getElementById("unityContainer").style.display = "none";
                document.getElementById("fallbackHeader").style.display = "block";
            }

   ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...