List<Texture2D> test = new List<Texture2D>(); void Update() { test.Add(new Texture2D(1000, 1000)); if (test.Count >= 20) { test.RemoveAt(0); System.GC.Collect(); } }
上記のような関数を実行した際、ListからTextureは削除されてはいるのですが、メモリからは解放されません。RemoveAtの箇所で削除されるテクスチャをメモリから解放するにはどうすればいいのでしょうか?
List<Texture2D> test = new List<Texture2D>(); void Update() { Texture2D Tmp=new Texture2D(1000, 1000)); test.Add(Tmp); if (test.Count >= 20) { test.RemoveAt(0); System.GC.Collect(); } Tmp=null; }
とすればメモリ解放は出来るのですが、参照元も消えてしまいListの中味が空っぽになってしまいます。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。