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

Ограниченные реестры

Реестры с заданной областью действия позволяют Unity сообщать диспетчеру пакетов расположение любого сервера реестра настраиваемых пакетов, чтобы пользователь имел одновременный доступ к нескольким коллекциям пакетов. Вот несколько важных понятий, которые помогут вам понять эту функцию:

Концепция: Описание:
package registry server Приложение, которое отслеживает пакеты и предоставляет место для их хранения. В окне диспетчера пакетов Unity все пакеты, зарегистрированные в реестре Unity, отображаются в списке, когда вы выбираете Unity Реестр контекст.
package manager Приложение, которое сообщает пользователю, что доступно, а также загружает и устанавливает любой пакет, который пользователь запрашивает для своего проекта. В Unity реализована собственная версия менеджера пакетов, но в других организациях есть несколько подобных приложений.
scope Определяет имя пакета или пространство имен (в формате обратного домена), например com.example.mycompany.animation или com.example . Когда пользователь запрашивает пакет, диспетчер пакетов извлекает из реестра пакет, который лучше всего соответствует области действия. Дополнительную информацию см. в разделе Управление реестрами с заданной областью для проекта ниже.

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

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

Реестры с ограниченным охватом могут помочь:

  • Предлагайте новые функции, распространяя инструменты, библиотеки и другие ресурсы.

    Как поставщик, вы можете создать собственный реестр для распространения инструментов и сценариевфрагмента кода, позволяющего создавать ваши собственные Компоненты, запускайте игровые события, изменяйте свойства Компонентов с течением времени и реагируйте на ввод данных пользователем любым удобным для вас способом. Подробнее
    См. в Словарь
    (или других типах ресурсов) с номерами версий, указывающими, как является ли пакет зрелым, а также вносят ли обновления критические изменения API или незначительные исправления: семантическое управление версиями. И ваш код может зависеть от кода в других пакетах, поскольку диспетчер пакетов поддерживает зависимости пакетов.

    Как потребитель, вы можете просматривать и устанавливать сторонние пользовательские пакеты в диспетчере пакетов так же, как и для пакетов Unity.

  • Расширить существующие функции пакета Unity.

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

  • Доступ к пакетам в закрытой сетевой среде.

    Некоторые организации работают внутри закрытой сети, что затрудняет доступ к собственному реестру пакетов Unity. В этих случаях организация может настроить собственный реестр пакетов на сервере в своей закрытой сети. Затем сетевые администраторы могут периодически синхронизироваться с реестром пакетов Unity, чтобы убедиться, что в реестре заданной области есть последний доступный набор пакетов.

Если вы являетесь потребителем пакетов, см. раздел Управление реестрами с заданной областью для проекта, чтобы узнать, как подключиться к существующему серверу пользовательского реестра пакетов в вашем проекте Unity. Если вы являетесь производителем пакетов, см. раздел Общий доступ к вашему пакету, чтобы узнать, какие серверы реестра пакетов поддерживаются, и ссылки на информацию о том, как настроить их для использования с Scoped Registries.

Примечание. Если вы настраиваете реестр с заданной областью, указывающий на сервер реестра пакетов с ограниченным доступом, вы можете настроить диспетчер пакетов для передачи вашего токена аутентификации npm на сервер. Дополнительные сведения см. в разделе Аутентификация реестра с заданной областью.

Импорт реестров с заданной областью

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

Unity предупредит вас об изменении списка реестров с ограниченной областью действия для вашего проекта.
Unity предупредит вас об изменении списка реестров с ограниченной областью действия для вашего проекта.

При нажатии кнопки Close открывается Диспетчер пакетов project settingsОбширный набор настроек, которые позволяют настроить поведение физики, звука, сети, графики, ввода и многих других областей вашего проекта. Подробнее
Появится окно Словарь
, чтобы вы могли add, modify или remove реестры с ограниченной областью действия для вашего проекта.

Если вместо этого нажать кнопку Read more, Unity откроет эту страницу в веб-браузере по умолчанию.

Совет. Чтобы получить доступ к окну настроек проекта диспетчера пакетов в любое время, используйте главное меню в Unity (меню: Edit > Project Settings, затем Package Manager) или выберите Advanced Project Settings в раскрывающемся меню advanced settings в окне Диспетчера пакетов.

Управление областями реестра для проекта

Для управления реестрами пакетов с заданной областью действия в проекте можно либо изменить манифест проектаКаждый проект Unity имеет манифест проекта, который действует как точка входа для диспетчера пакетов. Этот файл должен находиться в каталоге /Packages. Диспетчер пакетов использует его для настройки многих вещей, включая список зависимостей для этого проекта, а также любой репозиторий пакетов для запроса пакетов. Подробнее
См. в файле Словарь
или используйте окно настроек проекта диспетчера пакетов, чтобы позволить Unity изменить манифест за вас.

В манифесте проекта используется свойство scopedRegistries, которое содержит массив объектов конфигурации реестра с заданной областью действия. Каждый объект содержит следующие свойства:

Свойство JSON Тип Описание
name String Имя области, отображаемое в пользовательском интерфейсе. Окно диспетчера пакетов отображает это имя в представлении сведений о пакете.

Например, "name": "Tools".

url String URL-адрес сервера реестра, совместимого с npm.

Например, "url": "https://mycompany.example.com/tools-registry"

Примечание. Не все поставщики реестра совместимы с диспетчером пакетов Unity. Убедитесь, что сервер реестра пакетов, который вы пытаетесь добавить, реализует конечные точки /-/v1/search или /-/all.

scopes Array of Strings Массив областей, которые можно сопоставить с именем пакета либо как точное совпадение с именем пакета, либо как пространство имен. Подстановочные знаки и другие шаблоны глобусов не поддерживаются.

Например, "scopes": [ "com.example", "com.example.tools.physics" ]

Примечание. Этот тип конфигурации предполагает, что пакеты следуют обратной записи имени домена. . Это гарантирует, что com.unity эквивалентен любому имени пакета, которое соответствует пространству имен com.unity, например com.unity.timeline или com.unity.2d.animation.

Предупреждение. Unity не поддерживает обозначение области видимости npm.

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

Например, в манифесте проекта ниже есть два реестра с заданными областями: «General» и «Tools»:

{ "scopedRegistries": [ { "name": "General", "url": "https://example.com/registry", "scopes": [ "com.example", "com.example.tools.physics" ] }, { "name": "Tools", "url": "https://mycompany.example.com/tools-registry", "scopes": [ "com.example.mycompany.tools" ] } ], "dependencies": { "com.unity.animation": "1.0.0", "com.example.mycompany.tools.animation": "1.0.0", "com.example.tools.physics": "1.0.0", "com.example.animation": "1.0.0" } }

Когда диспетчер пакетов ищет пакет com.example.animation, он обнаруживает, что пространство имен com.example наиболее близкое совпадение с его именем, поэтому пакет извлекается из «Общего» реестра.

Когда диспетчер пакетов ищет пакет com.example.tools.physics, область реестра «Общие» точно соответствует имени пакета.

Когда диспетчер пакетов ищет пакет com.example.mycompany.tools.animation, он обнаруживает, что пакет com.example Пространство имен .mycompany.tools наиболее близко соответствует его имени и, следовательно, извлекает пакет из реестра «Инструменты». Несмотря на то, что оно также соответствует области «Общие», пространство имен com.example не так близко к этому совпадению.

Когда диспетчер пакетов ищет пакет com.unity.animation, он не находит соответствия ни в одном из реестров с заданной областью действия и, следовательно, извлекает пакет. из реестра по умолчанию.

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