UnloadUnusedAssets似乎没有释放内存

时间:2015-03-05 20:56:59

标签: unity3d

我正在使用Resources.Load()在Unity中运行精灵,并且正如预期的那样,内存会增加。 但问题是,我似乎无法弄清楚如何释放记忆。

我知道我需要使用Resources.UnloadUnusedAssets(),但即使我删除了我能想到的精灵的每个引用,内存也不会再回落。

现在我的代码:

加载精灵(工作正常):

map = Resources.Load <Sprite> ("Map7");
spRend = this.GetComponent<SpriteRenderer>();
spRend.sprite = map;

卸载精灵(内存未被释放):

spRend.sprite = null;
map = null;
Resources.UnloadUnusedAssets();

更新:

经过进一步的研究,我在Unity wiki上找到了这个:

  

当不再使用时,您可以通过在对象上调用Object.Destroy释放它占用的内存,然后是Resources.UnloadUnusedAssets

但问题是当我试图破坏地图时,我收到以下错误:

Destroying assets is not permitted to avoid data loss.
If you really want to remove an asset use DestroyImmediate (theObject, true);

0 个答案:

没有答案