rsyncを使ってUnityのWebGLをデプロイする
UnityWebGLのビルドをrsyncでサーバーにデプロイする UnityのWebGLビルドを自鯖にデプロイできるか試したので、手順を書き残しておきます。 サーバーに置いたチクタクバンバン風のスライディングパズルゲーム。 https://smartphone-games.net/rails-webgl/ 大雑把な手順 UnityのWebGLビルド Canvasサイズを設定 Compression FormatをDisableに設定 ビルドフォルダの権限設定 chmod -R 755 sshを使ったrsyncでサーバーに送信 nginxでapplication/wasm設定 Unity UnityのプラットフォームをWebGLに設定します。 設定後に、ProjectSettingsのResolution and Presentationのキャンバスサイズを1920x1080などに設定します。 Compression FormatをDisableで無効に設定します。 GZIPなどの圧縮を選ぶと、そのままだとブラウザで開くとエラーになります。自前で回答処理が必要で面倒なので無効にしています。 ビルドで出力された各フォルダやファイルに権限設定を行います。 ビルドの成果物が含まれてる親フォルダで以下を実行して権限を付与します。 セキュリティ的に不安がある場合は、より制限した権限設定を行いますが、ここではざっくり権限付与になっています。 chmod -R 755 [ビルドのルートフォルダ] rsync ビルドの成果物をサーバーに送信するのにrsyncを使いました。 サーバーにsshログインできることを前提にして、rsync+sshで送信しています。 username@hostはsshのconfigに記載したホストとユーザー名を使います。 繰り返し使うと思うので、権限設定とrsyncでの送信を含めてshellやmakefileでスクリプト化します。 rsync -avz --delete -e ssh [ローカルのビルド成果物フォルダのパス] [username@host:サーバーの配置パス] sshのconfig Host [rsyncで使うホスト] ... User [rsyncで使うユーザー名] ... nginx rsyncでサーバーに置いたWebGLゲームを/var/www/public_htmlにリンクを使って配置するなど外部に公開できるようにします。 /etc/nginx/mime.types にwasmの設定がないと警告が表示されます。 application/wasmをmime.typesに追加して、nginxを再起動します。 mime.types application/wasm wasm; nginx再起動 sudo nginx -s reload これでWebGLを公開できるはずです。 https://smartphone-games.net/rails-webgl/