原帖:http://answers.unity3d.com/questions/1350392/webgl-build-not-using-custom-unityprogressjs.html
我有一个在 WebGL 中部署的 Unity 项目。在 Assets/WebGLTemplates 文件夹中,我有自定义模板数据。
索引.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>
模板数据/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 论坛上收到回复了。
我认为问题在于您缺少对实例化函数中初始化进度的调用
<script>
var gameInstance = UnityLoader.instantiate("gameContainer", "%UNITY_WEBGL_BUILD_URL%", {onProgress: UnityProgress});
</script>
我喜欢 t0e$* ___________________________________________________________ *嗨