В этом разделе объясняются многие концепции, связанные с функциональностью диспетчера пакетов Unity:
- Versions
- ManifestsСуществует два типа файлов манифеста: манифест проектаs и манифест пакетаs.
See in Словарь - Registry
- Package Management
- Package sources
- Package states and lifecycle
- Dependency and resolution
- Global cache
Версии
Доступно несколько версий каждого пакета, отмечая изменения в этом пакете на протяжении его жизненного цикла. Каждый раз, когда разработчик обновляет пакет, он присваивает ему новый номер версии. Изменение версии пакета сообщает вам, содержит ли оно критическое изменение (основное), новую функциональность с обратной совместимостью (второстепенное) или только исправления ошибок (патч), следующие за Семантическое управление версиями.
Чтобы просмотреть список версий, доступных для определенного пакета, см. раздел Поиск определенной версии.
Манифесты
Существует два типа файлов манифеста:
-
Манифесты проектаКаждый проект Unity имеет манифест проекта, который действует как точка входа для диспетчера пакетов. Этот файл должен находиться в каталоге
. Диспетчер пакетов использует его для настройки многих вещей, включая список зависимостей для этого проекта, а также любой репозиторий пакетов для запроса пакетов. Подробнее/Packages
См. в Словарь (manifest.json
) хранит информацию, необходимую диспетчеру пакетов для поиска и загрузки нужных пакетов, включая список пакетов и версий, объявленных как зависимости
См. в Словарь. -
Манифесты пакетовКаждый пакет имеет манифест, который предоставляет информацию о пакете диспетчеру пакетов. Манифест содержит такую информацию, как имя пакета, его версия, описание для пользователей, зависимости от других пакетов (если есть) и другие подробности. Подробнее
См. в Словарь (package.json
) хранит информацию о конкретном пакете, а также список пакетов и версий, которые требуются для этого пакета.
В обоих файлах используется синтаксис JSON (нотация объектов JavaScript).
Реестр
В домене диспетчера пакетов Unity реестр пакетов — это сервер, на котором хранится содержимое пакета и информация (метаданные) о каждой версии пакета. Unity ведет центральный реестр официальных пакетов, доступных для распространения. По умолчанию все проекты используют официальный реестр пакетов Unity, но вы можете добавить дополнительные реестры для хранения и распространения частных пакетов или создания пользовательских пакетов во время их разработки
Управление пакетами
Диспетчер пакетов Unity — это инструмент, который управляет всей системой пакетов. Его основные задачи включают следующее:
- Он взаимодействует с сервером реестра пакетов Unity и любыми дополнительными реестрами, которые вы укажете.
- Он читает ваш манифест проекта и извлекает содержимое пакета и метаданные.
- Он устанавливает, обновляет и удаляет пакеты, независимо от того, являются ли они зависимостями проекта или одного из установленных пакетов.
- Он импортирует пакеты Asset Store, которые вы ранее загрузили или приобрели.
- Он включает и отключает встроенные пакеты Unity.
- Он отображает информацию о каждой версии каждого пакета.
- Он разрешает конфликты, когда для проекта и его пакетов требуется более одной версии пакета.
Диспетчер пакетов Unity устанавливает образцы, инструменты и активы для каждого проекта отдельно, а не для всех проектов для определенного компьютера или устройства. Он использует глобальный кэш для хранения загруженных метаданных и содержимого пакетов. После установки в проекте Unity обрабатывает ресурсы пакета так же, как и любой другой ресурс в проекте, за исключением того, что эти ресурсы хранятся внутри папку пакета и являются неизменяемымиВы не можете изменить содержимое неизменяемого (доступного только для чтения) пакета. Это противоположность mutable. Большинство пакетов являются неизменяемыми, включая пакеты, загруженные из реестра пакетов или по URL-адресу Git.
См. в Словарь. Вы можете навсегда изменить содержимое только из локальных и встроенных источников пакетов.
Исходники пакетов
Источники описывают, откуда пришел пакет:
Источник | Описание |
---|---|
Реестр | Диспетчер пакетов Unity загружает большинство пакетов с сервера реестра пакетов в глобальный кэш на вашем компьютере по вашему запросу. Эти пакеты являются неизменяемыми, поэтому вы можете использовать их в своем проекте, но вы не можете изменять их или изменять их манифесты пакетов. |
Built-in | Эти пакеты позволяют включать или отключать функции Unity (например, физику ландшафта, анимацию и т. д.). Они неизменны. Дополнительные сведения см. в разделе Встроенные пакетыВстроенные пакеты. разрешить пользователям включать и выключать функции Unity с помощью диспетчера пакетов. Включение или отключение пакета уменьшает размер сборки во время выполнения. Например, в большинстве проектов не используется устаревшая система частиц. При удалении абстрактного пакета этой функции соответствующий код и ресурсы не становятся частью конечного продукта. Как правило, эти пакеты содержат только манифест пакета и связаны с Unity (а не доступны в реестре пакетов). См. в Словарь. |
Embedded | Любой пакет, хранящийся в папке вашего проекта, является встроенным. Этот источник соответствует состоянию Пользовательский, поскольку вы обычно помещаете все сценарии, библиотеки, примеры и другие ресурсы, необходимые вашему новому пакету, в папку в папке вашего проекта, когда вы начинаете разработку на пользовательском пакете. |
Local | Вы можете установить пакет из любой папки на вашем компьютере (например, если вы локально клонировали репозиторий разработки). |
Tarball (local) | Вы можете установить пакет из файла tarball на свой компьютер. Диспетчер пакетов извлекает пакет из архива и сохраняет его в кэше. Однако эти пакеты неизменяемы, в отличие от установки из локальной папки. |
Git | Диспетчер пакетов устанавливает пакеты на основе Git непосредственно из репозитория Git, а не с сервера реестра пакетов. |
Чтобы изменить манифест пакета для пакета, см. раздел Проверка пакетов.
В окне диспетчера пакетов отображается тег, соответствующий некоторым из этих источников. Дополнительную информацию см. в разделе ТегиСсылочное слово, которое вы может назначаться одному или нескольким игровым объектам, чтобы помочь вам идентифицировать игровые объекты для целей написания сценариев. Например, вы можете определить тег «Съедобный» для любого предмета, который игрок может съесть в вашей игре. Подробнее
См. в Словарь.
Примечание. Диспетчер пакетов хранит пакеты, загруженные из Asset Storeрастущей библиотеки. бесплатных и коммерческих ресурсов, созданных Unity и членами сообщества. Предлагает широкий спектр ресурсов, от текстур, моделей и анимации до целых примеров проектов, руководств и расширений редактора. Подробнее
См. в Словарь в кэше, отдельном от глобального кэша. Дополнительные сведения см. в разделе пакеты Asset Store.