Во-первых, всё ее содержимое НЕ грузится в оперативу (как я предполагал ранее).
Во-вторых, вот рабочий пример выгрузки ненужных ассетов из памяти.
Создаем в папке с проектом папку Resources, грузим туда, например, много текстурок в ARGB32, вешаем скрипт, включаем диспетчер задач и наблюдаем .
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
Object[] objs;
void OnGUI()
{
if (GUILayout.Button("Load All"))
{
objs = Resources.LoadAll("");
}
if (GUILayout.Button("UnLoad All"))
{
Resources.UnloadUnusedAssets();
objs = null;
}
}
}
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
Object[] objs;
void OnGUI()
{
if (GUILayout.Button("Load All"))
{
objs = Resources.LoadAll("");
}
if (GUILayout.Button("UnLoad All"))
{
Resources.UnloadUnusedAssets();
objs = null;
}
}
}
При запуске пустой сцены - 23 мега в памяти, жмем кнопочку LoadAll - потребление памяти растет (у меня 147 мегов с моими текстурками), жмем кнопочку UnloadAll - потребление памяти падает обратно до 23 мегов.
Хочу заметить, что только
- Код: Выделить всё
Resources.UnloadUnusedAssets();
Если кто-то что-то умное может сказать на эту тему - you're welcome!