Инструменты23 июля 2026 г., 21:45 МСК🤖 Auto

Unity CLI: автономный инструмент для управления редактором и CI

Unity представила единый бинарный файл для управления редакторами, проектами и авторизации. Новый инструмент поддерживает запуск C#-кода в реальном времени и интеграцию с AI-агентами.

Баннер новости 4234

Единый бинарный файл вместо Unity Hub

Компания Unity выпустила Unity CLI — автономный инструмент командной строки, предназначенный для управления редакторами, модулями, проектами и аутентификации. В отличие от старого безголового режима Unity Hub, Unity CLI является нативным бинарным файлом, что обеспечивает значительно более высокую скорость выполнения команд. Установка происходит через менеджер пакетов (скоро появится поддержка brew, winget, apt) и добавляет утилиту в PATH.

Ключевая особенность — отсутствие необходимости в графическом интерфейсе. Все операции, от установки версий до входа в аккаунт, выполняются через терминал. Это критически важно для CI/CD пайплайнов, где требуется стабильность и скорость.

Автоматизация и структурированные данные

Unity CLI спроектирован для работы в скриптах и агентах. Каждая команда поддерживает вывод в форматах JSON и TSV, что позволяет легко парсить результаты. Ошибки выводятся в stderr, а результаты — в stdout, с использованием стандартных кодов выхода (0 — успех, 1 — ошибка, 130 — отмена).

Для неинтерактивных установок (headless) предусмотрены флаги --accept-eula и --yes, а авторизация в CI осуществляется через учетные записи сервисов (Service Account) без участия браузера.

com.unity.pipeline: управление живым редактором

Параллельно выпущен экспериментальный пакет com.unity.pipeline, который позволяет CLI взаимодействовать с уже запущенным редактором Unity 6.0 LTS или Dev Player. Это превращает редактор в программируемую цель для скриптов.

Разработчики могут создавать собственные команды, добавляя атрибут [CliCommand] к статическим методам C#. Пример ниже демонстрирует, как простой метод становится доступным через терминал:

Команда терминала Код C# (в проекте) Результат
unity greet --name World
[CliCommand("greet")]
public static int Greet(
  [CliArg("name", Required = true)]
  string name)
{
  Debug.Log($"Hello, {name}!");
  return name.Length;
}
Возвращает длину имени (5) и логирует приветствие
unity command eval "return Application.version;" Возвращает текущую версию движка

Unity Eval: REPL для C# в реальном времени

Самая мощная функция — команда unity command eval. Она запускает произвольный код C# внутри запущенного редактора или плеера без перекомпиляции проекта и перезагрузки домена. Код компилируется с помощью Roslyn на лету.

Это открывает путь для AI-агентов: агент может получить текстовый отчет об ошибке (например, «персонаж проваливается под пол»), выполнить команду eval для проверки состояния коллайдеров в реальном времени, исправить их и подтвердить решение, наблюдая за игрой. Это устраняет необходимость в ручном копировании логов и перезапусках сцен.

Установка и первые шаги

Для macOS/Linux:

curl -fsSL https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.sh | UNITY_CLI_CHANNEL=beta bash

Для Windows:

$env:UNITY_CLI_CHANNEL='beta'; irm https://public-cdn.cloud.unity3d.com/hub/prod/cli/install.ps1 | iex

После установки доступны команды unity editors (список версий), unity install (установка с модулями), unity auth (вход) и unity doctor (диагностика окружения). Пакет com.unity.pipeline устанавливается командой unity pipeline install внутри проекта.

Источник: Unity ↗