【メモ】Unity WebGL出力時の注意点
今まではスマホ向けにアプリをリリースしていましたが、今回趣向を変えてWebGLでアプリを作ってみようと思いました。
作製の際にいくつかツマヅイたので、注意点としてメモしておきます。
デフォルトのArialフォントだと日本語が使えない。
有名なようですが、ArialフォントだとWebGLで出力した際、日本語が表示されませんでした。
よって、使用するフォントを変更する必要があります。
フォント変更の際は著作権に注意したほうが良いと思います。※再配布可能なものなど
この問題、WebGLだけでなくスマホでも起こりうる事象かもしれません。
スマホアプリの場合は必ずフォントを変えていたので、未検証ですが。
デフォルトの画面サイズは960x600
WebGLに出力したときのデフォルトのサイズは960x600で固定されるようです。
適当に作っていると各オブジェクトがズレてしまいます。
よって、960x600で設定し直すか、ビルド後に出力されるindex.html内でサイズを修正する必要があります。
サーバにアップロードすると、アプリが開始されない。
ローカルファイルをブラウザで実行すると問題なく動作するのですが、サーバ上だとうまくいいかず、エラーが表示されます。
An error occurred running the Unity content on this page. See your browser’s JavaScript console for more info.~
と表示されます。
こちらの対応ですが、ビルド時に出力されるindex.html内の以下の行
dataUrl: “Release/webGL.data”,
codeUrl: “Release/webGL.js”,
asmUrl: “Release/webGL.asm.js”,
memUrl: “Release/webGL.mem”,
以下のように拡張子を変更する必要があるようです。
”gz”を追加します。
dataUrl: “Release/webGL.datagz”,
codeUrl: “Release/webGL.jsgz”,
asmUrl: “Release/webGL.asm.jsgz”,
memUrl: “Release/webGL.memgz”,
ローカルではうまくいくことから、Unityの影響ではなく、サーバの環境が原因なのかと思いました。
WebGLを実行するサーバプログラムについて
最初、Node.jsにてWebGLを実行しようと思いましたが、うまく行きませんでした。
アプリ画面からすでに表示されません。
調査して、WebGLを実行できると書かれていたライブラリを入れようとしましたが、エラーで導入できませんでした。
諦めてNode.jsからapacheに変更すると、ものの数分で実行できました。
自分の調査不足もあるのですが、Webサーバはapacheの方が使いやすいと思いました。
注意点としては以上です。