Unity WebGL覆盖兼容性检查回调

时间:2019-05-13 16:26:12

标签: javascript unity3d webgl unity-webgl

我目前正在研究Unity WebGL项目,该项目仅支持WebGL 2.0。 该项目不适用于UnityLoader.instantiate()

现在,我想认识到,如果浏览器不支持 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"; } ,将显示图像而不是WebGL上下文。

对于ns函数,如果不支持WebGL,则有一个回调函数。不幸的是,此函数未调用我的代码。

module_ui

预先感谢! 最好的祝福, 劳伦斯·特里彭

1 个答案:

答案 0 :(得分:0)

您可以尝试

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

所以change your WebGL template可能是类似的

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";
            }

   ...