Unity/WebGL/apache
提供: 初心者エンジニアの簡易メモ
Uncaught SyntaxError: Invalid or unexpected token等エラーがでる場合
以下詳細
Uncaught SyntaxError: Invalid or unexpected token sample1.loader.js:1 Uncaught ReferenceError: unityFramework is not defined at HTMLScriptElement.n.onload (sample1.loader.js:1) sample1.loader.js:1 [UnityCache] 'http://hoge.com/sample1/Build/sample1.data.br' successfully downloaded and stored in the indexedDB cache
minimumで出力した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 WebGL Player | unsi</title> </head> <body style="text-align: center"> <canvas id="unity-canvas" style="width: 626px; height: 250px; background: #231F20"></canvas> <script src="Build/webgl_sample1.loader.js"></script> <script> createUnityInstance(document.querySelector("#unity-canvas"), { dataUrl: "Build/webgl_sample1.data.br", frameworkUrl: "Build/webgl_sample1.framework.js.br", codeUrl: "Build/webgl_sample1.wasm.br", streamingAssetsUrl: "StreamingAssets", companyName: "DefaultCompany", productName: "testapp", productVersion: "1.0", }); </script> </body> </html>
ウェブサーバーではttp://hoge.com/sample1/index.htmlとなるので、
index.htmlのsrcとかに/sample1/を追加したが・・・上記のように同じエラーがでる。
<!DOCTYPE html> <html lang="en-us"> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Unity WebGL Player | unsi</title> </head> <body style="text-align: center"> <canvas id="unity-canvas" style="width: 626px; height: 250px; background: #231F20"></canvas> <script src="/sample1/Build/webgl_sample1.loader.js"></script> <script> createUnityInstance(document.querySelector("#unity-canvas"), { dataUrl: "/sample1/Build/webgl_sample1.data.br", frameworkUrl: "/sample1/Build/webgl_sample1.framework.js.br", codeUrl: "/sample1/Build/webgl_sample1.wasm.br", streamingAssetsUrl: "StreamingAssets", companyName: "DefaultCompany", productName: "testapp", productVersion: "1.0", }); </script> </body> </html>
https://docs.unity3d.com/2020.1/Documentation/Manual/webgl-server-configuration-code-samples.html?_ga=2.258867658.1744347718.1605948322-176549160.1595780906 apacheだと参照先の.htaccessをBuildのdirの下に於けば良いと合ったが、今度はbrファイルにアクセスできなくなった。
unity2020.1系だと、このエラーが出るようで、unity2019系にするとどうなるか試してみると良いかも。
unity2020系動作part1
unity2020系でも、Project Settings/Player/WebGL/"Publishing Settings"の"Compression Format"をDisabledへすると、動作した。
unity2020系動作part2
unity2020系でも、Project Settings/Player/WebGL/"Publishing Settings"のDecompression FallbackをOnにすると、動作した。
出力される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 WebGL Player | typetoon</title> </head> <body style="text-align: center"> <canvas id="unity-canvas" width=960 height=600 style="width: 960px; height: 600px; background: #231F20"></canvas> <script src="Build/web_project.loader.js"></script> <script> createUnityInstance(document.querySelector("#unity-canvas"), { dataUrl: "Build/web_project.data.unityweb", frameworkUrl: "Build/web_project.framework.js.unityweb", codeUrl: "Build/web_project.wasm.unityweb", streamingAssetsUrl: "StreamingAssets", companyName: "DefaultCompany", productName: "testapp", productVersion: "1.0", // matchWebGLToCanvasSize: false, // Uncomment this to separately control WebGL canvas render size and DOM element size. // devicePixelRatio: 1, // Uncomment this to override low DPI rendering on high DPI displays. }); </script> </body> </html>