🎮

WebGLをFirebaseHostingで公開 〜Unity

2023/11/29に公開

Unityの情報とFirebaseHostingの情報が繋がらない

Unity視点のWebGLのbuildと、
Firebase視点のHostingの設定が、
どうにも行き違って、一日潰してしまった。
それぞれの情報はたくさんあるので、基本的なところは飛ばして、
「つなぎ目の工夫」だけ、書くことにします。

Unity側で言われたこと

buildするときに、Projectと同じ名前でsaveする。
だから、unity/acorn/acornみたいに入れ子になる。
もう一つ、ほぼほぼdefaultでbuildして大丈夫だけど、
そのbuildのindexからは、runできないよ、という謎の忠告。

Hosting設定で"public"ができます、という罠

設定を次々こなしていくと、
What do you want to use as your public directory? (public)
というところに出会う。
このデフォルトをそのままenterで受け入れると、罠にはまる。
なぜなら、Unity側が「Projectと同じ名前でセーブしろ」といった、
そこに係わるから。
そのまま受け入れるとpublicというフォルダができて、
そこには魔のdefault画面が入っているだけ。
これがただひたすら表示される。

そもそも、どこで設定するのか

uploadするProject下で設定する、というのは
入れ子になっているどちらのフォルダなのか。
結論だけ言えば、「大元のほう」。

で、何に注意をするのか。

まず、Hosting設定中に上記の設問が出たら、

(public)を消して、プロジェクト名を書く

これが一番よいと思う。
そうすれば、不要なpublicができずに、既存のdirectoryが選択される。
でもここって、ほいほいenterしていきたい場所だったりするので、
もしうっかりpublicを作ってしまったら、強引に次の二段階で修正する。

  • publicを削除してしまう。
  • firebase.jsonを修正する。
{
  "hosting": {
    "public": "public", を "public": "acorn", に修正する。
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}

これで、入れ子の下の層のdirectoryが読み込まれる。

もう一つの謎Error

上記の設定でdeployしても、もう一つ難関がある。
それは「runしてもErrorが出るよ」というのが、deploy後にも起こるということ。
つまりこれ。

BuildSettingで一手間。

エラー文はGZipがちゃんと開けない、って書いてある。
ということで、
buildSetting→PlayerSetting→PublishingSetting→CompressionFormatで、
圧縮を無効にする。
上から2行目ですね。defaultだとGzipになっています。
ただ、私のProjectはとても小さいので圧縮なしでも楽勝ですが、
複雑なゲームになったら、どうするんでしょ、それは私にはわからない。

これで無事deployできました\(^O^)/

Discussion