2012年4月26日木曜日

Unity: メモリ不足に陥ったらResourcesクラスのアンロードを試してみる

Resources.Load()で読み込んだデータは、そのデータを使用していたオブジェクトが削除されても、再利用する時のためにキャッシュに残る仕組みになっているようです。

PCなどの比較的メモリが多いマシンで実行する時には問題が起こりにくいですが、スマートフォンなどのデバイス上だとメモリが足りなくなり、問題が起こるケースもあるようです。

メモリ不足に陥る前に、対処が求められます。
ResourcesクラスのUnloadUnusedAssets()メソッドを使用します。
Resources.UnloadUnusedAssets();
このメソッドは、現在キャッシュに残っていて使用していないアセットを破棄してくれます。

なお、AsyncOperationとなっていますので、処理が完了するまで待たされるようです。
シーンの切り替えなど、ある程度時間がかかってもおかしくないところで実行するのがいいかもしれません。

こちらも合わせてどうぞ。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...