???? Нативное решение Unity
В 2018 разработчики из Unity релизнули централизованное хранилище для итеративных обновлений движка и расширений Editor, которое получило название UPM
- Unity Package Manager.
Позже появились и сторонние сервисы через которые распространяются UPM-пакеты:
Отдельно можно выделить NuGetForUnity, который запускает NuGet клиент внутри редактора Unity.
Несмотря на это, больше 93 тысяч ассетов и расширений публикуются в Asset Store
, который официально не предоставляет функционал загрузки UPM-пакетов.
???? Ищем решение
Asset Store Tools v11.3.1, разрешает загружать ассеты из следующих источников:
Папки
Assets
-
Aрхива
.unitypackage
Просмотрев исходники Asset Store Tools, видим экспериментальный функционал обернутый в директиву #if UNITY_ASTOOLS_EXPERIMENTAL
:
Функционал уже реализован со стороны Unity, но недоступен конечным паблишерам:
При этом Unity Technologies разработчики загружают собственные ассеты виде UPM-пакетов:
Чтобы добиться аналогичного результата выполняем следующие шаги:
-
Создаем черновик ассета через Unity Publisher Portal:
-
Добавляем в define Unity проекта
значениеUNITY_ASTOOLS_EXPERIMENTAL
Project Settings > Scripting Define Symbols: -
После завершения компиляции, выбираем опцию загрузки локального UPM-пакета и указываем путь до пакета с исходниками:
-
Нажимаем на кнопку
Upload
и ????:
???? Заключение
Тип загрузки с помощью UPM-пакетов, подойдет для ассетов или тулзов, которые версионируются и конфигурируют зависимости между пакетами.
Тем самым получая единообразную структуру ассетов для UPM реестра и Asset Store хранилища.
Вероятно, в будущих релизах Unity опубликуют открытое решение для паблишеров.
Если вы тоже юзали internal или experimental фичи, обязательно пишите об этом.
???? Полезные ссылки
Smart Importer - GitHub, Asset Store
Asset Store Tools - GitHub, Asset Store
Unity’s Package Manager