Описание
Класс Resources позволяет находить и получать доступ к объектам, включая активы.
В редакторе Resources.FindObjectsOfTypeAll можно использовать для поиска ресурсов и объектов сцены.
Все ресурсы, которые находятся в папке "Ресурсы" в любом месте папки "Активы", доступны с помощью функций Resources.Load. Может существовать несколько папок «Ресурсы», и при загрузке объектов будет проверяться каждая из них.
В Unity вы обычно не используете имена путей для доступа к ресурсам, вместо этого вы предоставляете ссылку на ресурс, объявляя переменную-член, а затем назначаете ее в инспекторе. При использовании этой техники Unity может автоматически вычислять, какие активы используются при создании плеера. Это радикально сводит размер ваших игроков к активам, которые вы фактически используете в построенной игре. При размещении ассетов в папках "Ресурсы" этого сделать нельзя, поэтому все ассеты в папках "Ресурсы" будут включены в сборку.
Еще один недостаток использования имен путей заключается в том, что это приводит к меньшему количеству повторно используемого кода, поскольку скрипты будут иметь определенные жестко запрограммированные требования в отношении того, где размещаются используемые ресурсы. С другой стороны, использование ссылок, отображаемых в инспекторе, является самодокументируемым и сразу очевидным для пользователя вашего скрипта.
Однако бывают ситуации, когда удобнее получить ресурс по его имени, а не ссылаться на него в инспекторе. По сути всякий раз, когда неудобно присваивать ссылку на объект в инспекторе. Например, вы можете создать игровой объект процедурно из скрипта и, например, назначить текстуру процедурно сгенерированной сетке.
Некоторые загруженные ресурсы, особенно текстуры, могут занимать много памяти, даже если в сцене нет экземпляров. Чтобы освободить эту память, когда ресурс больше не нужен, вы можете использовать Resources.UnloadUnusedAssets.
Примечание. Папку Resources в Assets необходимо создать до ее использования. Он не создается при создании нового проекта.
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
void Start()
{
GameObject go = GameObject.CreatePrimitive(PrimitiveType.Plane);
Renderer rend = go.GetComponent<Renderer>();
rend.material.mainTexture = Resources.Load("glass") as Texture;
}
}
Статические Методы
НайтиObjectsOfTypeAll | Возвращает список всех объектов типа T. |
InstanceIDToObject | Преобразует идентификатор экземпляра в ссылку на объект. |
InstanceIDToObjectList | Преобразует массив идентификаторов экземпляров в список ссылок на объекты. |
Загрузить | Загружает ресурс запрошенного типа, хранящийся по пути в папке ресурсов. |
LoadAll | Загружает все ресурсы в папку или файл по пути в папке ресурсов. |
LoadAsync | Асинхронно загружает ресурс, хранящийся по пути в папке ресурсов. |
UnloadAsset | Выгружает assetsToUnload из памяти. |
ВыгрузитьUnusedAssets | Выгружает неиспользуемые ресурсы. |