Unity:WebGLビルド「Out of memory…」で起動できない時の対処

Unity
スポンサーリンク

これはシンプルな対処法ですが、割と現実的です。
WebGLビルドで作成されたフォルダ内にあるJSONファイルのメモリサイズ項目を書き換えるだけです。

確認したUnityのバージョン Unity 2019.4.35.f1

スポンサーリンク

手順

ビルドしたフォルダ内にある Buildフォルダを開く。

Player Settings…のProduct Name項目で設定した名称(Product Nameを設定していなければプロジェクト名)の ~.json ファイルがあるのでエディタを使って開く。

TOTAL_MEMORYの項目の数値がWebGL実行時に割り当てられたメモリー。単位はバイト。
この数値を増やす。
ここで、どれくらい増やす必要があるかはMemory Profiler等でチェックする必要がある。(後述)

TOTAL_MEMORY項目はデフォルトで268435456Byte(=256MB)に設定されているようです。

268435456(Byte) ÷ 1024 ÷ 1024 = 256(MB)

例えば、倍の512MBにしたい場合、

512(MB) × 1024 × 1024 = 536870912(Byte)

をTOTAL_MEMORYの数値に設定します。
基本的には16の倍数が良いようです。

実際に増やした例

わたしの場合、実行に必要なメモリが370MBだったので、余裕を見て512MBとして次のように計算した。

512(MB) × 1024 × 1024 = 536870912(Byte)

一応これで「Out of memory…」のメッセージは表示されなくなり、問題なく動作した。

TOTAL_MEMORYを上げ過ぎると、実行端末自体のメモリが足りなくてブラウザがとまってしまったり動きが怪しくなったりすると思う。注意されたし。

実行時に必要なメモリ量を知るには?

プロジェクトを実行した際の必要なメモリ量は、UnityのPackage ManagerからMemory Profilerをインストールすることで知ることができる。
以下を参考にしてください。

公式ドキュメントの資料

WebGL プロジェクトのビルドと実行 - Unity マニュアル
WebGL プロジェクトを ビルド すると、以下のファイルを含むフォルダーが Unity 内に作成されます。

コメント

タイトルとURLをコピーしました