Пакеты Unity: установка через Package Manager, версии и зависимости проекта

Input System, Cinemachine и многие другие инструменты приходят в проект как пакеты. Package Manager помогает установить их, увидеть версии и зависимости. Но одно и то же окно также может показывать покупки Asset Store, у которых другой процесс импорта.

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

ТОП-5 курсов обучения Unity:

Registry, My Assets и Git

Unity Registry содержит пакеты Unity, совместимые с выбранным Editor. In Project показывает установленные зависимости. My Assets относится к доступным вам материалам Asset Store; многие из них загружаются и импортируются как asset packages.

UPM также поддерживает Git, локальные пакеты и scoped registries. Это разные источники, и для каждого нужна соответствующая команда добавления. Unitypackage нельзя считать эквивалентом package.json.

Основные возможности окна описаны в справке Package Manager. В разных выпусках место команды в меню Window может меняться; ориентируйтесь на название инструмента.

Установка пакета из Unity Registry

  1. Сохраните проект и откройте Package Manager.
  2. Выберите Unity Registry и найдите нужный пакет, например Input System.
  3. Прочитайте описание, совместимость и зависимости.
  4. Выберите доступную совместимую версию и нажмите Install.
  5. Дождитесь окончания установки, импорта и компиляции.
  6. Откройте документацию пакета и создайте минимальную проверку.

Если пакет просит дополнительную настройку, выполните именно её. Например, установка Input System и включение подходящего backend — связанные, но отдельные действия. Для работы с вводом есть практическая инструкция.

Отсутствие пакета в списке может быть связано с фильтром, совместимостью или источником. Add package by name требует точного package ID; человеческое название в каталоге не всегда совпадает с ним.

Что проверять при установке из Git

Используйте URL из официального репозитория автора и проверьте, где расположен package.json. Если пакет лежит в подпапке, Git URL должен указывать соответствующий path согласно синтаксису UPM.

Закрепляйте tag или commit, если нужна воспроизводимость. Подвижная ветка может со временем указывать на другое содержимое. Версия в README и реальный commit установленного пакета должны быть понятны команде.

Порядок добавления описан в руководстве Git URL. Проверьте наличие Git и доступ к репозиторию. Не вводите credentials в публичные файлы проекта.

Локальный пакет и собственные инструменты

Add package from disk позволяет выбрать package.json локального пакета. Это полезно для разработки собственного инструмента, но ссылка на абсолютный каталог одного компьютера не переносится автоматически к коллеге.

Заранее решите, как пакет будет доступен другим: согласованный относительный путь, репозиторий, registry или embedded-форма. README должен объяснять, где получить исходник и как подключить его.

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

Manifest и lock-файл

Packages/manifest.json описывает прямые зависимости и registry-настройки. Packages/packages-lock.json фиксирует разрешённые зависимости. Сохраняйте оба файла вместе с проектом.

Package Manager обновляет эти данные при установке и удалении. После операции посмотрите diff: какие пакеты и версии изменились. Иногда обновление одного инструмента подтягивает другое семейство зависимостей.

Формат JSON требует правильных кавычек и запятых. Если изменяете manifest вручную, делайте это осознанно и сохраняйте возможность отката. Для обычной установки начинающему проще использовать UI.

Обновление без неожиданностей

Прочитайте changelog и migration guide. Обновляйте в отдельной ветке, проверяя одну логическую группу изменений. Пакеты конвейера и связанные инструменты могут быть привязаны к Editor; им нельзя произвольно назначить любую версию.

После обновления проверьте конкретные сценарии использования. Для Cinemachine — камеры и переходы, для Input System — устройства и UI, для сетевого пакета — соединение и синхронизацию. Затем сделайте сборку.

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

Если пакет не устанавливается

Проверьте сообщение Package Manager: ошибка сети, package ID, несовместимая версия и Git authentication означают разные действия. При ошибке компиляции после установки изучите тип и assembly, а также дубликаты библиотек.

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

После успешной проверки запишите источник, номер и назначение. Разница пакетов и ассетов разобрана в статье об ассетах, а значение файлов зависимостей — в материале о файлах Unity.

Документация