Работа с ресурсами¶
В скриптах вы можете программно работать с любыми(аудио, видео, модели и т.д.) ресурсами проекта.
Important
Если вы добавили ресурс в проект, но не назначили его какому-либо объекту, то он не будет добавляться в пакет на экспорте и соответственно не будет доступен программно в скриптах. Чтобы использовать такой ресурс в скриптах, поставьте галочку “Всегда добавлять в пакет на экспорте”, выбрав необходимый ресурс во вкладке “Ресурсы”.
Note
На системах 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) |
Возвращает количество ресурсов в проекте заданного типа. Параметр:
|
addResource(aResource) |
Добавляет указанный ресурс в репозиторий ресурсов. Параметр:
|
removeResource(aId) |
Удаляет ресурс с указанным идентификатором из репозитория ресурсов. Параметр:
|
findResourcesByPrefix(aPrefix, aCaseSensitive) |
Находит ресурс по префиксу. Параметры:
|
removeResource(aId) |
Удаляет ресурс с указанным идентификатором из репозитория ресурсов. Параметр:
|
getResourceById(aId) |
Возвращает ресурс с указанным идентификатором. Параметр:
|
getResourceByName(aName, aKind) |
Самый часто используемый метод. Возвращает ресурс с указанным именем файла. Параметры:
|
getResourcePath(id) |
Возвращает путь к файлу ресурса с указанным идентификатором. Параметры:
|
Пример кода:
local audio = reactorController:getReactorByName("audio")
resource = resourceRepository:getResourceByName("sound.mp3")
audio.audioResource = resource
audio:play()