Unity でオーディオ(オーディオクリップ)のメモリ消費量を削減する方法を書いていきます。
注意事項
今回の設定は、パフォーマンスよりもメモリ消費を抑えたい BGM(MP3)を「ストリーミング」にするものです。
オーバーヘッドを防ぎたい場合などは、異なる設定値が良いと思います。詳細は Unity のマニュアルなどを参考にして頂きたいです。
設定方法
1. インスペクターの表示
プロジェクトウィンドウでオーディオファイルを選択して、インスペクターを表示します。
2. Load Type の設定
インスペクターで、Load Type
を Streaming
に設定します。
対応前後の比較
MP3(約2~3MB、256kbps)を、7曲ほどヒエラルキーウィンドウに追加している状態で比較しました。
対応前
ゲームを起動すると、AudioClips が約90MB消費していました。
デフォルトの設定だと、起動時にMP3を(非圧縮にして)メモリに展開していたのかと思います。
対応後
AudioClips のメモリ消費量は、約250KBになりました。
上は BGM を1曲再生しているときのプロファイリング画像です。