COMBO ENGINEERINGの公式ブログ

COMBO ENGINEERINGの公式ブログです。リリースするアプリについてアナウンスします。

【メモ】Unity WebGL出力時の注意点

今まではスマホ向けにアプリをリリースしていましたが、今回趣向を変えてWebGLでアプリを作ってみようと思いました。
作製の際にいくつかツマヅイたので、注意点としてメモしておきます。
f:id:taka230035:20170830173455p:plain


デフォルトのArialフォントだと日本語が使えない。

有名なようですが、ArialフォントだとWebGLで出力した際、日本語が表示されませんでした。
よって、使用するフォントを変更する必要があります。

フォント変更の際は著作権に注意したほうが良いと思います。※再配布可能なものなど

この問題、WebGLだけでなくスマホでも起こりうる事象かもしれません。
スマホアプリの場合は必ずフォントを変えていたので、未検証ですが。



デフォルトの画面サイズは960x600

WebGLに出力したときのデフォルトのサイズは960x600で固定されるようです。
適当に作っていると各オブジェクトがズレてしまいます。

よって、960x600で設定し直すか、ビルド後に出力されるindex.html内でサイズを修正する必要があります。



サーバにアップロードすると、アプリが開始されない。

ローカルファイルをブラウザで実行すると問題なく動作するのですが、サーバ上だとうまくいいかず、エラーが表示されます。

f:id:taka230035:20170830173506p:plain
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の方が使いやすいと思いました。



注意点としては以上です。