これを使用して、プレハブが不要になったときにテクスチャをアンロードします (ポップアップです)。
UISprite[] widgets = gameObject.GetComponentsInChildren<UISprite>(true);
for (int i = 0, imax = widgets.Length; i < imax; i++)
{
UISprite w = widgets[i];
Debug.Log ("Removing: " + w.gameObject.name);
if (w.mainTexture)
{
Debug.Log ("Removing: " + w.mainTexture.name);
Resources.UnloadAsset(w.mainTexture);
}
}
アンロード後に Texture2Ds がプロファイラーに表示されなくなったため、これは私が見ることができるように機能しています。しかし問題は、ポップアップを再度インスタンス化すると、スプライトが白いボックスのように表示されることです。そのため、ドキュメントに記載されているように、必要なときに再読み込みされません: シーン内のゲーム オブジェクトからアセットへの参照があり、それが使用されている場合、Unity はアクセスされるとすぐにディスクからアセットを再読み込みします。
私が間違っていることは何ですか?