はじめに

概要

Unityで作成したブラウザゲーム(Webアプリ)をレンタルサーバで動かす方法をまとめます。

開発環境

  • Windows 11
  • Unity 6(6000.0.39f1)

Unityのインストール

まずはUnityをインストールします。 下記の公式サイトからUnityやUnityプロジェクトを管理してくれるUnity Hubをインストールして、 アカウントを作成&ログインした後にUnity 6をインストールします。

Unity公式サイト

Unityでブラウザゲーム(Webアプリ)を作成

Unityプロジェクトを作成して、ブラウザゲーム(Webアプリ)を作成してください。 Unityの使い方を説明しようとすると長くなってしまうので、ここでは割愛します。 Unityはユーザ数が非常に多くて検索すれば使い方の情報がたくさん出てきます。

ひとつ忘れがちなこととして、 UIを表示するためのCanvasでは下記の設定をしておくとよいです。

  • Render Mode: Screen Space - Camera
  • UI Scale Mode: Scale With Screen Size

UnityプロジェクトをGit管理

Git管理の話は必須ではないので必要ない方は飛ばしてOKです。 ただ、UnityプロジェクトもGitで管理しておくと便利です。

たとえばGitHubでリポジトリを作成する時は、 .gitignoreUnityを選択します。 また、Windowsの場合はGitHub Desktopというアプリを使うとGit管理がやりやすいです。

.gitignoreに関してですが、 デフォルトのままだと30000個くらいのファイルがGit管理の対象になってしまうため、 個人的には下記を.gitignoreに追加するとよいかと思います。

Library
Logs
Packages
ProjectSettings
Temp
UserSettings
*TextMesh Pro*

とりあえずAssetsフォルダをGit管理できるとよさそうです。

ブラウザゲーム(Webアプリ)をビルド

肝心のビルド方法です。

まずはEdit -> Project Settingsで下記の設定を行います。

  • PlayerのCompany NameとProduct Nameを記載
  • Publishing SettingsのCompression Formatを「Gzip」に変更

Compression FormatはBrotilのほうが優れているようですが、 私のレンタルサーバ環境ではうまく動きませんでした。

また、Decompression FallbackをONにすると、 サーバ環境をいじらずに圧縮関連のトラブルを回避できるという情報が散見されますが、 私の環境ではうまく動きませんでした。

次にFile -> Build Profliesで下記の設定を行います。

  • Platformsを「Web」に変更
  • Scene listにブラウザゲーム(Webアプリ)で使用するSceneを追加
  • Code Optimizationを「Shorter Build Time」に変更

以上の設定が完了したらBuild and Runボタンを押します。

私の環境だとビルドに45分くらいかかりました。

サーバにブラウザゲーム(Webアプリ)を配置

ビルドの生成物(index.htmlとBuildフォルダ、TemplateDataフォルダ)をサーバの公開されるディレクトリに配置します。

しかし、これだけではGzipで圧縮されたファイルを展開できないので、 例としてApacheを使用している場合は、 下記の内容をコピペした.htaccessファイルをBuildフォルダの直下に配置します。

 This configuration file should be uploaded to the server as "<Application Folder>/Build/.htaccess"
# NOTE: "mod_mime" Apache module must be enabled for this configuration to work.
<IfModule mod_mime.c>

# # The following lines are required for builds without decompression fallback, compressed with gzip
RemoveType .gz
AddEncoding gzip .gz
AddType application/octet-stream .data.gz
AddType application/wasm .wasm.gz
AddType application/javascript .js.gz
AddType application/octet-stream .symbols.json.gz

# The following line improves loading performance for uncompressed builds
AddType application/wasm .wasm

</IfModule>

Nginxなど他のサーバ環境の場合は下記の公式サイトをご確認ください。

Unity: WebGL: サーバー設定コードサンプル

参考

下記の記事を参考にさせていただきました。

HatenaBlog: UnityのWebGLビルドをレンサバに設置する際やっとく設定のメモ

Qiita: UnityのWebGLでwasmのMIMEに関して表示される警告を回避する

おわりに

Unityでブラウザゲーム(Webアプリ)を作成してレンタルサーバで動かす方法をまとめました。 何かしら誰かの参考になると嬉しいです。 それでは、また。