【Unity】メモリリークの原因となるパターンを列挙してみます
随時更新予定です。
目次
メモリリークするパターン
Resources.Load したのに Resources.Unload していない
- Resources フォルダからロードしたファイルは Resources.Unload で手放すことが基本。
GameObject を Instansiate した後 Destroy していない
- こちらも基本。Instantiate したら Destroy すること。
Renderer.material で取得したマテリアルをDestroy していない
- インスタンスが複製されるので注意。ただアクセスしたいだけなら sharedMateria を参照すると良いです。
MeshFilter.mesh で取得したメッシュをDestroyしていない
HideFlags.HideAndDontSave を指定している
- 設定する場合はアプリ起動時に常駐する様な物に対して設定すること。
- Unity – Scripting API: HideFlags.HideAndDontSave (unity3d.com)