Unity использует файл манифеста пакета (package.json) для управления информацией о конкретной версии определенного пакета. Манифест пакета всегда находится в корне пакета и содержит важную информацию о пакете, такую как его зарегистрированное имя и номер версии. Он также определяет полезную информацию для сообщения пользователю, например понятное имя, которое отображается в UI(пользовательский интерфейс) Позволяет пользователю взаимодействовать с вашим приложением. Подробнее
См. в Словарь краткое описание пакета и самую раннюю версию Пакет совместим с Unity.
В манифесте пакета используется синтаксис JSON (нотация объектов JavaScript) для описания содержимого пакета. Формат файла аналогичен npm package.json. формат, но использует другую семантику для некоторых свойств.
Диспетчер пакетов читает этот манифест, чтобы узнать, что содержит пакет, как распаковать его содержимое и какую информацию отображать пользователю в окне диспетчера пакетов. В манифесте эта информация хранится в виде последовательности обязательных, рекомендуемых и необязательных. свойства.
Обязательные свойства
Если эти свойства отсутствуют, либо реестр отклоняет пакет при его публикации, либо диспетчер пакетов не может получить или загрузить пакет.
| Свойство | JSON тип | Описание |
|---|---|---|
| name | String | Официально зарегистрированное имя пакета. Это имя должно соответствовать соглашению об именовании диспетчера пакетов Unity, в котором используется обратная нотация имени домена. Дополнительную информацию о соглашении об именах см. в разделе Именование пакета.
Примечание. Это уникальный идентификатор, а не удобное для пользователя имя, которое отображается в представлении списка в окне диспетчера пакетов. |
| version | string | Номер версии пакета (MAJOR.MINOR.PATCH).
Например, «3.2.1» означает, что это третий основной выпуск, второй дополнительный выпуск и первое исправление. Это значение должно учитывать семантическое управление версиями. Дополнительную информацию см. в разделе Управление версиями. |
Рекомендуемые свойства
Диспетчер пакетов может устанавливать пакеты в проект, даже если рекомендуемые свойства не имеют допустимых значений или отсутствуют.
Однако следует присвоить значения этим свойствам, чтобы убедиться, что ваш пакет можно обнаружить, и чтобы пользователям было удобнее работать с ним.
| Свойство | JSON тип | Описание |
|---|---|---|
| description | String | Краткое описание пакета. Это текст, который отображается в представлении сведений окна диспетчера пакетов. Это поле поддерживает коды символов UTF–8. Это означает, что вы можете использовать специальные коды символов форматирования, такие как разрывы строк (\n) и маркеры (\u25AA). |
| displayName | String | Удобное имя для отображения в редакторе Unity (например, в браузере проектов, окне диспетчера пакетов и т. д.).
Например, Временная шкала Unity, ProBuilder, Покупка в приложении. |
| unity | String | Указывает самую раннюю версию Unity, с которой совместим пакет. Если этот параметр опущен, менеджер пакетов считает пакет совместимым со всеми версиями Unity.
Ожидаемый формат: " Примечание. Пакет, несовместимый с Unity, не отображается в окне диспетчера пакетов. |
Необязательные свойства
Эти свойства являются необязательными, то есть их можно не указывать. Однако если они присутствуют, они должны иметь допустимое значение.
| Свойство | JSON тип | Описание |
|---|---|---|
| author | Object | Автор пакета.
Этот объект содержит одно обязательное поле, name, и два необязательных поля, email и url. Например: |
| changelogUrl | String | Пользовательское расположение журнала изменений этого пакета, указанное в виде URL-адреса. Например:"changelogUrl": "https://example.com/changelog"
Примечание. Когда диспетчер пакетов не может получить доступ к URL-адресу (например, из-за проблем с сетью), он делает следующее: - Если пакет установлен, диспетчер пакетов открывает файловый браузер, отображающий файл |
| dependencies | Object | Карта зависимостей пакетов. Ключи — это имена пакетов, а значения — это конкретные версии. Они указывают на другие пакеты, от которых зависит этот пакет.
Примечание. Диспетчер пакетов не поддерживает синтаксис диапазона, только версии SemVer. |
| documentationUrl | String | Пользовательское расположение для документации этого пакета, указанное в виде URL-адреса. Например:"documentationUrl": "https://example.com/"
Примечание. Когда диспетчер пакетов не может получить доступ к URL-адресу (например, из-за проблем с сетью), он делает следующее: - Если пакет установлен, диспетчер пакетов открывает файловый браузер, отображающий папку |
| hideInEditor | Boolean | Диспетчер пакетов автоматически скрывает большинство пакетов (неявное значение — «true»), но вы можете установить для этого свойства значение «false», чтобы убедиться, что ваш пакет и его активы всегда видны. |
| keywords | Array of Strings | Массив ключевых слов, используемых поисковыми API диспетчера пакетов. Это помогает пользователям находить соответствующие пакеты. |
| license | String | Идентификатор лицензии OSS с использованием формата идентификатора SPDX или строки, такой как "See Файл LICENSE.md".
Примечание. Если вы не укажете это свойство в манифесте пакета, ваш пакет должен содержать файл |
| licensesUrl | String | Пользовательское расположение для информации о лицензии этого пакета, указанное в виде URL-адреса. Например:"licensesUrl": "https://example.com/licensing"
Примечание. Когда диспетчер пакетов не может получить доступ к URL-адресу (например, из-за проблем с сетью), он делает следующее: - Если пакет установлен, он открывает файловый браузер, отображающий файл |
| samples | Array of Objects | Список образцов, входящих в комплект. Каждый образец содержит отображаемое имя, описание и путь к папке образца, начиная с самой папки Samples~:
Дополнительную информацию см. в разделе Создание образцов для пакетов. |
| type | String | Константа, предоставляющая дополнительную информацию диспетчеру пакетов.
Зарезервировано для внутреннего использования. |
| unityRelease | String | Часть версии Unity, указывающая конкретный выпуск Unity, с которым совместим пакет. Вы можете использовать это свойство, когда обновленный пакет требует внесения изменений во время цикла разработки альфа/бета Unity. Это может быть в том случае, если пакету требуются недавно введенные API или используются существующие API, которые были изменены без обратной совместимости без правил API Updater.
Ожидаемый формат: «<UPDATE><RELEASE>» (например, 0b4). Примечание. Если вы не укажете рекомендуемое свойство unity, это свойство не будет действовать. Пакет, несовместимый с Unity, не отображается в окне диспетчера пакетов. |
Пример манифеста пакета
{
"name": "com.[company-name].[package-name]",
"version": "1.2.3",
"displayName": "Package Example",
"description": "This is an example package",
"unity": "2019.1",
"unityRelease": "0b5",
"documentationUrl": "https://example.com/",
"changelogUrl": "https://example.com/changelog",
"licensesUrl": "https://example.com/licensing",
"dependencies": {
"com.[company-name].some-package": "1.0.0",
"com.[company-name].other-package": "2.0.0"
},
"keywords": [
"keyword1",
"keyword2",
"keyword3"
],
"author": {
"name": "Unity",
"email": "unity@example.com",
"url": "https://www.unity3d.com"
}
}

