我目前正在研究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
预先感谢! 最好的祝福, 劳伦斯·特里彭
答案 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";
}
...