UnityroomでWebGLのゲームをSafariで読み込む時にエラーが出ることへの対処方法の提案

急ぎの結論

TextMeshProではなくTextを使えば大丈夫になるかも?

暫定的なものであり、詳しく調べたわけではありませんが、試す価値はあると思います。

経緯

バージョン2020.3.25f1で製作したゲームをバージョン2021.3.22f1でリメイクし、再びUnityroomに投稿しようとしていたが、途中段階を製作仲間と共有する際に限定公開でUnityroomにアップロードしたところ、iPhoneからプレイできないことが発覚した。

症状

・iPhoneのSafari(ios16.3, ios15.4)からプレイしようとすると、読み込み画面でエラーが出てプレイできない。
・同じくiPhoneのChromeからも同じタイミングでエラーが出る
・PC(mac)からは問題なく遊べる

試してダメだったこと

https://note.com/crispy2d/n/naf0422d83d83 の方法を試す
・WebGL設定から使用メモリを変更する

原因を調べた

どうやらTextMeshProの日本語を含むフォントがあるとダメらしい

試しにText(Regacy)だけを置いたゲームを作って投稿したところ、問題なく読み込みができた。
が、これをTextMeshProに置き換え、日本語が表示できるようにフォントアセットを生成、「あいうえお」と表示すると、iPhoneでは読み込みができなかったできないことがある。

(4/15追記)
端末によっては読み込める。iPhone8では動かないが、より新しい端末だと動くこともあった。(これが原因かはわからない)
また、TMProのTextの数を増やすにつれて読み込みできないことが多くなった。もしかしたら、これがiPhoneでは重たい動作なのかもしれない。

暫定的な結論

日本語を表示させる場合、TextMeshProではなくTextを使えば大丈夫になるかも?
TextMeshProのフォントに日本語を含めないようにするといいかも?

この記事が気に入ったらサポートをしてみませんか?