Работа с ресурсами

В скриптах вы можете программно работать с любыми(аудио, видео, модели и т.д.) ресурсами проекта.

Важно

Если вы добавили ресурс в проект, но не назначили его какому-либо объекту, то он не будет добавляться в пакет на экспорте и соответственно не будет доступен программно в скриптах. Чтобы использовать такой ресурс в скриптах, поставьте галочку «Всегда добавлять в пакет на экспорте», выбрав необходимый ресурс во вкладке «Ресурсы».

Примечание

На системах Android, если установлена опция «Всегда добавлять в пакет на экспорте», то не устанавливайте опцию «Добавлять в assets на экспорте», иначе чтение файла ресурса будет происходить с диска, а не из оперативной памяти.

Типы ресурсов

Тип ресурса

Описание

Resource.Kind.MODEL

3D Модели. Поддерживаемые форматы: «fbx», «gltf», «glb», «obj», «osgb», «osgt»

Resource.Kind.SCRIPT

Скрипты. Поддерживаемые форматы: «lua»

Resource.Kind.IMAGE

Изображения. Поддерживаемые форматы: «png», «bmp», «jpg», «jpeg», «tiff», «tif», «hdr», «dds», «ktx»

Resource.Kind.AUDIO

Аудио. Поддерживаемые форматы: «ogg», «wav», «flac», «mp3»

Resource.Kind.VIDEO

Видео. Поддерживаемые форматы: «webm»

Resource.Kind.FONT

Шрифты. Поддерживаемые форматы: «ttf», «otf», «woff»

Resource.Kind.CONFIG

Файлы конфигурации. Поддерживаемые форматы: «csv», «xml», «json», «txt», «arobject»

Resource.Kind.LIBRARY

Библиотеки. Поддерживаемые форматы: «dll», «so», «dylib»

Resource.Kind.UNDEFINED

Прочие файлы

Управление ресурсами проекта

Управление ресурсами проекта осуществляется с помощью глобального объекта resourceRepository. Ниже описаны его методы:

Метод

Описание

getResourcesCount(aKind)

Возвращает количество ресурсов в проекте заданного типа.

Параметр:

aKind - тип ресурса. Если не указан, то метод вернет общее количество ресурсов проекта.

addResource(aResource)

Добавляет указанный ресурс в репозиторий ресурсов.

Параметр:

aResource - ресурс, который необходимо добавить.

removeResource(aId)

Удаляет ресурс с указанным идентификатором из репозитория ресурсов.

Параметр:

aId - идентификатор ресурса, который необходимо удалить.

findResourcesByPrefix(aPrefix, aCaseSensitive)

Находит ресурс по префиксу.

Параметры:

aPrefix - префикс ресурса.

aCaseSensitive - флаг, учитывать ли регистр букв.

removeResource(aId)

Удаляет ресурс с указанным идентификатором из репозитория ресурсов.

Параметр:

aId - идентификатор ресурса, который необходимо удалить.

getResourceById(aId)

Возвращает ресурс с указанным идентификатором.

Параметр:

aId - идентификатор ресурса.

getResourceByName(aName, aKind)

Самый часто используемый метод. Возвращает ресурс с указанным именем файла.

Параметры:

aName - имя файла ресурса.

aKind - тип ресурса. Если не указан, будет произведен поиск по всем типам ресурсов.

getResourcePath(id)

Возвращает путь к файлу ресурса с указанным идентификатором.

Параметры:

id - идентификатор ресурса.

Пример кода:

local audio = reactorController:getReactorByName("audio")

resource = resourceRepository:getResourceByName("sound.mp3")

audio.audioResource = resource

audio:play()