Unity:WebGL构建不使用自定义UnityProgress.js

时间:2017-05-15 06:46:03

标签: unity3d unity-webgl

原帖:http://answers.unity3d.com/questions/1350392/webgl-build-not-using-custom-unityprogressjs.html

我有一个我在WebGL中部署的Unity项目。在Assets / WebGLTemplates文件夹中,我有自定义模板数据。

的index.html

 <!DOCTYPE html>
 <html lang="en-us">
   <head>
     <meta charset="utf-8">
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <title>%UNITY_WEB_NAME%</title>
     <link rel="stylesheet" href="TemplateData/style.css">
     <script src="TemplateData/UnityProgress.js"></script>  
     <script src="%UNITY_WEBGL_LOADER_URL%"></script>
     <script>
       var gameInstance = UnityLoader.instantiate("gameContainer", "%UNITY_WEBGL_BUILD_URL%");
     </script>
   </head>
   <body>
     <div id="gameContainer" style="width: %UNITY_WIDTH%px; height: %UNITY_HEIGHT%px; margin: auto"></div>
   </body>
 </html>

TemplateData / UnityProgress.js

 function UnityProgress(gameInstance, progress) {
   if (!gameInstance.Module)
     return;
   if (!gameInstance.logo) {
       gameInstance.logo = document.createElement("div");
       console.log("Try it out");
     //gameInstance.logo.className = "logo " + gameInstance.Module.splashScreenStyle;
     //gameInstance.container.appendChild(gameInstance.logo);
   }
 ...

麻烦的是,Unity识别自定义模板,但坚持使用自己的UnityLoader,它在加载器中完整地具有Unity徽标(自定义加载程序删除)。作为一种解决方法,我已将自定义模板插入Unity文件夹本身,并且它按预期工作。但是,我想在项目本身内管理模板文件(因此它与机器无关)。

我找不到关于TemplateData的任何文档,即使我觉得我错过了一些非常明显的东西......

...我在Unity论坛上已经收到回复约一个星期了。

1 个答案:

答案 0 :(得分:0)

我认为问题在于你错过了在实例化函数中初始化进度的调用

 <script>
       var gameInstance = UnityLoader.instantiate("gameContainer", "%UNITY_WEBGL_BUILD_URL%", {onProgress: UnityProgress});
 </script>