Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Манифест проекта

Когда Unity загружает проект, диспетчер пакетов Unity считывает манифест проекта, чтобы составить список пакетов, которые необходимо получить и загрузить. Когда пользователь устанавливает или удаляет пакет через окно диспетчера пакетов, диспетчер пакетов сохраняет эти изменения в файле манифеста проекта. Файл манифеста проекта управляет списком пакетов через объект dependencies.

Кроме того, манифест проекта служит файлом конфигурации для диспетчера пакетов, который использует манифест для настройки URL-адреса реестра и регистрации пользовательских реестров.

Вы можете найти файл манифеста проекта с именем manifest.json в папке Packages в корневой папке вашего Единый проект. Как и файл манифеста пакета, файл манифеста проекта использует синтаксис JSON (нотация объектов JavaScript).

Свойства

Все свойства являются необязательными. Однако, если файл манифеста вашего проекта не содержит никаких значений, окно диспетчера пакетов не загружается, а диспетчер пакетов не загружает пакеты.

Совет. В любой момент вы можете исправить любые проблемы с реестром, выбрав Reset packages to defaults в главное меню справки Unity. Однако имейте в виду, что это действие сбрасывает все изменения, внесенные вами в зависимости вашего проекта, поэтому лучше делать это в крайнем случае.

Ключ JSON тип Описание
dependencies
See in Словарь
Object Коллекция пакетов, необходимых для вашего проекта. Сюда входят только прямые зависимости (непрямые зависимости перечислены в манифестах пакетовКаждый пакет имеет манифест, который предоставляет диспетчеру пакетов информацию о пакете.Манифест содержит такую информацию, как имя пакета, его версия, описание для пользователей, зависимости от других пакетов (если есть) и другие сведения. Подробнее
См. в Словарь
). Каждая запись сопоставляет имя пакета с минимальной версией, необходимой для проекта:

{
  "dependencies": {
    "com.my-package": "2.3.1",
    "com.my-other-package": "1.0.1-preview.1",
      etc.
  }
}

Указание номера версии означает, что вы хотите, чтобы диспетчер пакетов загрузил пакет из реестра пакетов (то есть источником пакета является реестр ). Однако, помимо использования версий, вы также можете указать путь к локальной папке или архивному файлу или URL Git.

Примечание. Вам не нужно указывать здесь встроенные пакеты, поскольку диспетчер пакетов находит их внутри Packages и загружает их автоматически. Диспетчер пакетов игнорирует любую запись, если в его собственном манифесте пакета есть встроенный пакет с таким же именем.

enableLockFile Boolean Включает файл блокировки, чтобы гарантировать детерминированное разрешение зависимостей. По умолчанию установлено значение true. Дополнительные сведения см. в разделе Использование файлов блокировки.
registry String Это свойство зарезервировано только для внутреннего использования.

Примечание. Если вы хотите подключиться к серверу реестра пакетов в дополнение к реестру Unity, используйте реестр с областью действия.

resolutionStrategy String Обновляет косвенные зависимости на основе правил семантического управления версиями. По умолчанию установлено значение lowest. Дополнительную информацию см. в разделе Настройка стратегии разрешения проблем ниже..
scopedRegistries Array of Objects Укажите пользовательские реестры в дополнение к реестру по умолчанию. Это позволяет размещать собственные пакеты.

Дополнительные сведения см. в разделе Реестры с ограниченной областью действия.

testables Array of Strings Список имен пакетов, тесты которых вы хотите загрузить в Unity Test FrameworkПакет Test Framework (ранее называвшийся Test Runner) — это инструмент Unity, который тестирует ваш код как в режиме редактирования, так и в режиме воспроизведения, а также на целевом платформах, таких как Standalone, Android или iOS. Подробнее
См. в Словарь
. Дополнительные сведения см. в разделе Добавление тестов в пакет.

Примечание. Вам не нужно указывать здесь встроенные пакеты, поскольку Unity Test Framework предполагает, что они тестируются по умолчанию.

useSatSolver Boolean Включает алгоритм разрешения зависимостей на основе SAT Solver. По умолчанию установлено значение true.

Если вы установите для этого свойства значение false, диспетчер пакетов будет использовать устаревший стратегия, основанная на глубине.

Пример

{ "registry": "https://my.registry.com", "scopedRegistries": [{ "name": "My internal registry", "url": "https://my.internal.registry.com", "scopes": [ "com.company" ] }], "dependencies": { "com.unity.package-1": "1.0.0", "com.unity.package-2": "2.0.0", "com.company.my-package": "3.0.0", "com.unity.my-local-package": "file:/my_package_folder", "com.unity.my-local-tarball": "file:/my_package_tarball.tgz", "com.unity.my-git-package": "https://my.repository/my-package.git#v1.2.3" }, "enableLockFile": true, "resolutionStrategy": "highestMinor", "testables": [ "com.unity.package-1", "com.unity.package-2" ] }

Настройка стратегии разрешения

Хотя вы можете явно добавлять версии пакетов в манифест проекта, чтобы переопределить разрешение зависимостей пакетов Unity и обновить косвенные зависимости, это не очень хорошая стратегия по двум причинам:

  • На владельца проекта возлагается больше ответственности за поддержку версий зависимостей.
  • Со временем у вас могут появиться зависимости, которые не требуются для проекта.

Лучше настроить, как диспетчер пакетов выбирает косвенные зависимости на основе правил семантического управления версиями, задав свойство resolutionStrategy:

Значение: Описание:
lowest Не обновляйте косвенные зависимости. Вместо этого он использует именно запрошенную версию. Это режим "по умолчанию".
highestPatch Обновите до самой высокой версии с теми же основными и второстепенными компонентами. Например, с запрошенной версией 1.2.3 эта стратегия выбирает самую старшую версию в диапазоне [1.2.3, 1.3.0) (то есть >= 1.2.3 и < 1.3.0).
highestMinor Обновите до самой высокой версии с тем же основным компонентом. Например, с запрошенной версией 1.2.3 эта стратегия выбирает самую старшую версию в диапазоне [1.2.3, 2.0.0) (то есть >= 1.2.3 и < 2.0.0).

Примечание. Версия 1.0.0 является первой стабильной, готовой к работе версией. Более низкие версии 0.X.Y указывают на то, что их API еще не является стабильным, и последующие второстепенные версии могут вносить критические изменения. Эта часть спецификации SemVer позволяет выпускать ранние версии пакета, не препятствуя быстрой разработке. Из-за этого, когда целевой версией является 0.XY, highestMinor ведет себя как highestPatch, чтобы гарантировать выбор предыдущей версии. -совместимая версия. Например, при запрошенной версии 0.1.3 эта стратегия выбирает самую старшую версию в диапазоне [0.1.3,0.2.0)< /код>.

highest Обновите до самой высокой версии. Например, с запрошенной версией 1.2.3 эта стратегия выбирает самую старшую версию в диапазоне [1.2.3,) (то есть >= 1.2.3 без верхней границы)

Примечание. Эти диапазоны никогда не позволяют зависимости перейти от стабильной версии к предварительный просмотр пакета.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3