teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

語弊がある部分変更

2018/02/13 01:29

投稿

sakura_hana
sakura_hana

スコア11429

answer CHANGED
@@ -2,10 +2,9 @@
2
2
  確かに「nullが入っていないTextureはGCの対象にならない」という仕様があります。
3
3
 
4
4
  一応`Resources.UnloadUnusedAssets();`を使うと、nullが入っていなくとも、どこからも参照されていなければメモリ解放される……らしいのですが、以前自分で検証した際は怪しげでした。
5
- (古い情報ので最新版では改善されてもしれなす)
5
+ (古い情報&自己流だったのでちゃんとやれば正しく動作するのではいかと思
6
6
 
7
- もし上のコードで指定のテクスチャをメモリ解放したいなら、
8
- `test.RemoveAt(0);`の**前の行**に`test[0] = null;`と入れると確実にGC対象になりますので、ほっといても次のGCタイミングで解放されます。
7
+ 別解としては、`test.RemoveAt(0);`の**前の行**に`test[0] = null;`と入れると確実にGC対象になりますので、ほっといても次のGCタイミングで解放されます。
9
8
  (null入れる代わりに`Destroy(test[0]);`でも多分OK)
10
9
 
11
10
  参考:[動的に生成したTextureとSpriteはしっかり管理しよう! - エイリアンプログラム](http://alien-program.hatenablog.com/entry/2017/11/12/131331)