0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Unity]UnityのWebGLビルドを簡単にホストできるコマンドを作ったよ

Posted at

UnityをWebGLビルドするとき、Build And Runを実行するとブラウザで確認することができますがBuildを実行した場合は自分でホストしなければ確認することができません。
やっかいなことに圧縮設定を行っている場合、正しくレスポンスを行わなければ正常に動作しません。
そこで、簡単にWebGLビルドをホストできるコマンドを作ったので紹介します。

使い方

仕様にはNodeJSが必要なので事前にダウンロードしておいてください。

# インストール
$ npm install -g @yaegaki/unity-http-server

# カレントディレクトリをホストする
$ unity-http-server

# パス、ポート、アドレスを指定してホストする
$ unity-http-server ./webgl-build-path -p 8080 -a 0.0.0.0

npxを使用してインストールせずに実行することも可能です。

$ npx -y @yaegaki/unity-http-server -p 8080 -a 0.0.0.0

面白い機能として Google Cloud Storageにアップロードしているファイル をホストすることもできます。
WebGLビルドを gs://hogehoge-bucket/game にアップロードした場合、以下のコマンドを実行することで http://localhost:8080 でアクセスできるようになります。

$ unity-http-server gs://hogehoge-bucket/game

解説

UnityのWebGLビルドで圧縮を行っている場合、正しくレスポンスのヘッダを設定しなければ以下のようなエラーになります。

これについてはUnity Manualに記載があります。

以下のように拡張子に応じて適切に Content-EncodingContent-Type を設定する必要があります。

Compression method File extension Response header
gzip .gz Content-Encoding: gzip
Brotli .br Content-Encoding:br
File extension Response header
.wasm, .wasm.gz, .wasm.br Content-Type: application/wasm
.js, .js.gz, .js.br Content-Type: application/javascript

unity-http-serverではファイルの拡張子を見てこの辺のヘッダを設定するようにしています。

まとめ

UnityのWebGLビルドをホストする方法はいろいろあると思いますが、unity-http-serverはできるだけシンプルで特にオプションを指定することなく使用できるようにしています。
WebGLビルドをするときに地味に面倒だった部分がこのコマンドを使うことで便利になると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?