前提・実現したいこと
Unityでゲームを作っているのですが、どうもメモリがうまく開放できていないようでProfilerを確認してみると、Assets>Texture2Dで前のシーンの画像データ(?)が読み込まれたままになってしまっています。
試したこと
画像データを選択してみるとReferenced By:のところにManagedStaticReferences()とあるので調べてみると、staticな変数から参照されていることがあるとでてきました。
■試したこと①
Resources.UnloadUnusedAssets();をシーンロード後に設定してみたが、ダメだった。
■試したこと②
シングルトンも使用していたためそちらが怪しいと思い、
・OnDestroy時に自身のインスタンスにNullを設定(instance = null;)
■試したこと③
これでも消えないため、
・シングルトンクラスを継承しているクラスで宣言していた「public変数」と「[SerializeField] private変数」にもOnDestroy時にNullを設定
→変数に紐づいていたオブジェクトの画像関連は消えたっぽいが、一部のシーンではまったく消えていないためよくわからない
ググってもこれくらいの対処方法しかわからないため苦戦しています。
どなたかご教授を・・・
補足情報(FW/ツールのバージョンなど)
Unity 2019.2.6f1
あなたの回答
tips
プレビュー