MCP Unity

MCP MCP Servers Open Source v1.3.0 · 26.04.2026 активный

Claude как напарник в Unity Editor: создаёт и редактирует GameObject-ы, компоненты, материалы, запускает тесты прямо из разговора. MCP-сервер встраивается в редактор как пакет Unity Package Manager.

v1.3.0
26.04.2026 current
v1.0.0
01.04.2025
Добавлен 06.07.2026 · Обновлён 06.07.2026 · MCP Servers
Установка
# Установка в Unity Editor:
# Window → Package Manager → + → Add package from git URL:
# https://github.com/CoderGamester/mcp-unity.git

# После установки: Tools → MCP Unity → Start Server (запускается на порту 3000)

# Claude Code (CLI) — подключиться к запущенному серверу:
claude mcp add unity --transport sse -- http://localhost:3000/sse

# Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "unity": { "url": "http://localhost:3000/sse" } } }
переведено ИИ

MCP Unity Editor (игровой движок)

🇺🇸Английский 🇨🇳Упрощённый китайский 🇯🇵Японский
                              ,/(/.   *(/,                                  
                          */(((((/.   *((((((*.                             
                     .*((((((((((/.   *((((((((((/.                         
                 ./((((((((((((((/    *((((((((((((((/,                     

             ,/(((((((((((((/*.           */(((((((((((((/*.                
            ,%%#((/((((((*                    ,/(((((/(#&@@(                
            ,%%##%%##((((((/*.             ,/((((/(#&@@@@@@(                
            ,%%######%%##((/(((/*.    .*/(((//(%@@@@@@@@@@@(                
            ,%%####%#(%%#%%##((/((((((((//#&@@@@@@&@@@@@@@@(                
            ,%%####%(    /#%#%%%##(//(#@@@@@@@%,   #@@@@@@@(                
            ,%%####%(        *#%###%@@@@@@(        #@@@@@@@(                
            ,%%####%(           #%#%@@@@,          #@@@@@@@(                
            ,%%##%%%(           #%#%@@@@,          #@@@@@@@(                
            ,%%%#*              #%#%@@@@,             *%@@@(                
            .,      ,/##*.      #%#%@@@@,     ./&@#*      *`                
                ,/#%#####%%#/,  #%#%@@@@, ,/&@@@@@@@@@&\.                    
                 `*#########%%%%###%@@@@@@@@@@@@@@@@@@&*´                   
                    `*%%###########%@@@@@@@@@@@@@@&*´                        
                        `*%%%######%@@@@@@@@@@&*´                            
                            `*#%%##%@@@@@&*´                                 
                               `*%#%@&*´                                     

     ███╗   ███╗ ██████╗██████╗         ██╗   ██╗███╗   ██╗██╗████████╗██╗   ██╗
     ████╗ ████║██╔════╝██╔══██╗        ██║   ██║████╗  ██║██║╚══██╔══╝╚██╗ ██╔╝
     ██╔████╔██║██║     ██████╔╝        ██║   ██║██╔██╗ ██║██║   ██║    ╚████╔╝ 
     ██║╚██╔╝██║██║     ██╔═══╝         ██║   ██║██║╚██╗██║██║   ██║     ╚██╔╝  
     ██║ ╚═╝ ██║╚██████╗██║             ╚██████╔╝██║ ╚████║██║   ██║      ██║   
     ╚═╝     ╚═╝ ╚═════╝╚═╝              ╚═════╝ ╚═╝  ╚═══╝╚═╝   ╚═╝      ╚═╝   

MCP Unity — это реализация протокола контекста модели (Model Context Protocol) для редактора Unity, позволяющая ИИ-ассистентам взаимодействовать с вашими проектами Unity. Этот пакет предоставляет мост между Unity и сервером на Node.js, реализующим протокол MCP, что позволяет таким ИИ-агентам, как Cursor, Windsurf, Claude Code, Codex CLI, GitHub Copilot, Google Antigravity и OpenCode, выполнять операции в редакторе Unity.

Возможности

Интеграция со средами разработки — доступ к кешу пакетов

MCP Unity обеспечивает автоматическую интеграцию с IDE, совместимыми с VSCode (Visual Studio Code, Cursor, Windsurf, Google Antigravity), путём добавления папки Unity Library/PackedCache в ваше рабочее пространство. Эта функция:

  • Улучшает интеллектуальный анализ кода для пакетов Unity
  • Обеспечивает более качественное автодополнение и информацию о типах для пакетов Unity
  • Помогает ИИ-ассистентам для кодирования понимать зависимости вашего проекта

Инструменты MCP-сервера

Для управления и запроса сцен и игровых объектов Unity через MCP доступны следующие инструменты:

  • execute_menu_item: Выполняет пункты меню Unity (функции, помеченные атрибутом MenuItem)

    Пример запроса: «Выполни пункт меню 'GameObject/Create Empty', чтобы создать новый пустой GameObject»

  • select_gameobject: Выбирает игровые объекты в иерархии Unity по пути или ID экземпляра

    Пример запроса: «Выбери объект Main Camera в моей сцене»

  • update_gameobject: Обновляет основные свойства GameObject (имя, тег, слой, состояние активности/статичности) или создает GameObject, если он не существует

    Пример запроса: «Установи тег объекта Player как 'Enemy' и сделай его неактивным»

  • update_component: Обновляет поля компонента GameObject или добавляет его к GameObject, если компонент отсутствует

    Пример запроса: «Добавь компонент Rigidbody к объекту Player и установи его массу как 5»

  • `add_package**: Устанавливает новые пакеты в Unity Package Manager

    Пример запроса: «Добавь пакет TextMeshPro в мой проект»

  • run_tests: Запускает тесты с помощью Unity Test Runner

    Пример запроса: «Запусти все тесты EditMode в моем проекте»

  • send_console_log: Отправляет журнал консоли в Unity

    Пример запроса: «Отправь журнал консоли в Unity Editor»

  • add_asset_to_scene: Добавляет ассет из базы данных ассетов в сцену Unity

    Пример запроса: «Добавь префаб Player из моего проекта в текущую сцену»

  • create_prefab: Создает префаб с опциональным скриптом MonoBehaviour и значениями сериализованных полей

    Пример запроса: «Создай префаб с именем 'Player' из скрипта 'PlayerController'»

  • create_scene: Создает новую сцену и сохраняет ее по указанному пути

    Пример запроса: «Создай новую сцену с именем 'Level1' в папке Scenes»

  • load_scene: Загружает сцену по пути или имени с опциональной добавочной загрузкой

    Пример запроса: «Загрузи сцену MainMenu»

  • `delete_scene**: Удаляет сцену по пути или имени и удаляет ее из Build Settings

    Пример запроса: «Удали старую TestScene из моего проекта»

  • get_gameobject: Получает подробную информацию о конкретном GameObject, включая все компоненты

    Пример запроса: «Получи детали GameObject Player»

  • get_console_logs: Извлекает журналы из консоли Unity с поддержкой постраничного вывода

    Пример запроса: «Покажи мне последние 20 ошибок из консоли Unity»

  • recompile_scripts: Перекомпилирует все скрипты в проекте Unity

    Пример запроса: «Перекомпилируй скрипты в моем проекте Unity»

  • save_scene: Сохраняет текущую активную сцену с опциональным сохранением по новому пути

    Пример запроса: «Сохрани текущую сцену» или «Сохрани сцену как 'Assets/Scenes/Level2.unity'»

  • get_scene_info: Получает информацию об активной сцене, включая имя, путь, состояние измененности и все загруженные сцены

    Пример запроса: «Какие сцены сейчас загружены в моем проекте?»

  • unload_scene: Выгружает сцену из иерархии (не удаляет файл ассета сцены)

    Пример запроса: «Выгрузи сцену UI из иерархии»

  • duplicate_gameobject: Дублирует GameObject на сцене с опциональным переименованием и изменением родителя

    Пример запроса: «Дублируй префаб Enemy 5 раз и переименуй их в Enemy_1 через Enemy_5»

  • delete_gameobject: Удаляет GameObject со сцены

    Пример запроса: «Удали старый объект Player со сцены»

  • reparent_gameobject: Изменяет родителя GameObject в иерархии

    Пример запроса: «Перемести объект HealthBar, чтобы он стал дочерним для UI Canvas»

  • move_gameobject: Перемещает GameObject в новую позицию (локальное или мировое пространство)

    Пример запроса: «Перемести объект Player в позицию (10, 0, 5) в мировых координатах»

  • rotate_gameobject: Поворачивает GameObject к новому вращению (локальное или мировое пространство, углы Эйлера или квартернион)

    Пример запроса: «Поверни Camera на 45 градусов по оси Y»

  • scale_gameobject: Изменяет масштаб GameObject до нового локального масштаба

    Пример запроса: «Увеличь объект Enemy вдвое»

  • set_transform: Устанавливает позицию, вращение и масштаб GameObject одной операцией

    Пример запроса: «Установи позицию Cube на (0, 5, 0), вращение на (0, 90, 0) и масштаб на (2, 2, 2)»

  • create_material: Создает новый материал с указанным шейдером и сохраняет его в проект

    Пример запроса: «Создай красный материал с именем 'EnemyMaterial', используя шейдер URP Lit»

  • assign_material: Назначает материал компоненту Renderer GameObject

    Пример запроса: «Назначь материал 'EnemyMaterial' GameObject Enemy»

  • modify_material: Изменяет свойства существующего материала (цвета, числа с плавающей запятой, текстуры)

    Пример запроса: «Измени цвет 'EnemyMaterial' на синий и установи металличность на 0.8»

  • get_material_info: Получает подробную информацию о материале, включая шейдер и все свойства

    Пример запроса: «Покажи мне все свойства материала 'PlayerMaterial'»

  • batch_execute: Выполняет несколько операций инструментов в одном пакетном запросе, уменьшая количество обменов данными и позволяя выполнять атомарные операции с опциональным откатом при сбое

    Пример запроса: «Создай 10 пустых GameObject с именами Enemy_1 через Enemy_10 в одной пакетной операции»

Инструменты MCP-приложения

  • show_unity_dashboard: Открывает панель управления Unity MCP-приложения в VS Code (требуется VS Code 1.109+)

    Пример запроса: «Открой приложение панели управления Unity»

  • get_play_mode_status: Получает статус режима воспроизведения Unity (isPlaying, isPaused)

    Пример запроса: «Unity в режиме воспроизведения?»

  • set_play_mode_status: Управляет режимом воспроизведения Unity с действиями: 'play' (начать или снять паузу), 'pause' (переключить паузу), 'stop' (выйти из режима воспроизведения), 'step' (перейти на один кадр вперед)

    Пример запроса: «Начни режим воспроизведения Unity» или «Поставь игру на паузу» или «Перейди вперед на один кадр»

Ресурсы MCP-сервера

  • unity://menu-items: Извлекает список всех доступных пунктов меню в Unity Editor для упрощения работы инструмента execute_menu_item

    Пример запроса: «Покажи мне все доступные пункты меню, связанные с созданием GameObject»

  • unity://scenes-hierarchy: Извлекает список всех игровых объектов в текущей иерархии сцены Unity

    Пример запроса: «Покажи мне текущую структуру иерархии сцен»

  • unity://gameobject/{id}: Извлекает подробную информацию о конкретном GameObject по ID экземпляра или пути к объекту в иерархии сцены, включая все компоненты GameObject с его сериализованными свойствами и полями

    Пример запроса: «Получи подробную информацию о GameObject Player»

  • unity://logs: Извлекает список всех журналов из консоли Unity

    Пример запроса: «Покажи мне последние сообщения об ошибках из консоли Unity»

  • unity://packages: Извлекает информацию об установленных и доступных пакетах из Unity Package Manager

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

  • unity://assets: Извлекает информацию об ассетах в базе данных ассетов Unity

    Пример запроса: «Найди все текстурные ассеты в моем проекте»

  • unity://tests/{testMode}: Извлекает информацию о тестах в Unity Test Runner

    Пример запроса: «Перечисли все доступные тесты в моем проекте Unity»

  • ui://unity-dashboard: Интерфейс приложения панели управления Unity MCP

    Пример запроса: «Открой приложение панели управления Unity»

Подсказки MCP-сервера

Подсказки — это предварительно настроенные шаблоны, предоставляющие пошаговые рабочие процессы для типичных задач Unity. Они помогают ИИ-ассистентам понять правильную последовательность операций и доступные инструменты для конкретных сценариев.

  • unity_dashboard: Открывает приложение панели управления Unity MCP с контекстной информацией о его функциях

    Использование: В вашем ИИ-ассистенте используйте подсказку «unity_dashboard» для получения пошагового доступа к панели управления Unity

  • gameobject_handling_strategy: Предоставляет структурированный рабочий процесс для работы с GameObject, включая какие инструменты и ресурсы использовать

    Использование: В вашем ИИ-ассистенте используйте подсказку «gameobject_handling_strategy» с идентификатором, именем или путем GameObject для получения пошагового руководства

Требования

[!NOTE] Пути к проектам с пробелами

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

Примеры: - ✅ Рекомендуется: C:\Users\YourUser\Documents\UnityProjects\MyAwesomeGame - ✅ Поддерживается: C:\Users\Your User\Documents\Unity Projects\My Awesome Game

Установка

Установка этого MCP Unity-сервера — многоэтапный процесс:

Шаг 1: Установите Node.js

Для запуска сервера MCP Unity на вашем компьютере должна быть установлена версия Node.js 18 или новее:

node

Windows

  1. Перейдите на страницу загрузки Node.js
  2. Скачайте установщик Windows (.msi) для LTS-версии (рекомендуется)
  3. Запустите установщик и следуйте инструкциям мастера установки
  4. Проверьте установку, открыв PowerShell и выполнив команду: bash node --version

macOS

  1. Перейдите на страницу загрузки Node.js
  2. Скачайте установщик macOS (.pkg) для LTS-версии (рекомендуется)
  3. Запустите установщик и следуйте инструкциям мастера установки
  4. Альтернативно, если у вас установлен Homebrew, вы можете выполнить: bash brew install node@18
  5. Проверьте установку, открыв Терминал и выполнив команду: bash node --version

Шаг 2: Установите пакет Unity MCP Server через Unity Package Manager

  1. Откройте Unity Package Manager (Window > Package Manager)
  2. Нажмите кнопку "+" в левом верхнем углу
  3. Выберите "Add package from git URL..."
  4. Введите: https://github.com/CoderGamester/mcp-unity.git
  5. Нажмите "Add"

package manager

Шаг 3: Настройте AI LLM клиент

Вариант 1: Настройка через Unity Editor

  1. Откройте Unity Editor
  2. Перейдите в меню Tools > MCP Unity > Server Window
  3. Нажмите кнопку «Configure» для вашего AI LLM клиента, как показано на изображении ниже

image

Глобальная vs. проектная конфигурация: - Configure [Client] — записывает в ваш глобальный конфигурационный файл пользователя (например, ~/.claude.json). Использует абсолютный путь. Применяется ко всем проектам на вашем компьютере. Лучше всего подходит для личной, однопользовательской настройки. - Configure [Client] (Project) — записывает в файл .mcp.json (или аналогичный) в корне проекта Unity. Использует относительный путь, поэтому работает на разных машинах. Предназначен для коммита в git и совместного использования с командой. Лучше всего подходит для совместных проектов или когда вы хотите, чтобы конфигурация перемещалась вместе с проектом.

Если сомневаетесь, выбирайте вариант (Project) — относительный путь более переносим и не сломается, если вы переместите папку проекта.

  1. Подтвердите установку конфигурации во всплывающем окне

image

Вариант 2: Настройка вручную

Откройте файл конфигурации MCP вашего AI клиента и добавьте конфигурацию сервера MCP Unity:

Замените ABSOLUTE/PATH/TO на абсолютный путь к вашей установке MCP Unity или просто скопируйте текст из окна MCP Server в Unity Editor (Tools > MCP Unity > Server Window).

Для конфигураций, которые находятся внутри дерева проекта Unity и коммитятся в git (например, <project>/.vscode/mcp.json, <project>/opencode.json, <project>/.cursor/mcp.json, <project>/.mcp.json, <project>/.codex/config.toml), предпочитайте относительный путь проекта, чтобы тот же файл работал на разных машинах. Переключите "Use relative path" в окне Server Window, чтобы переключать вставляемый фрагмент между абсолютной и относительной к проекту формой. Кнопки Configure GitHub Copilot, Configure OpenCode, Configure Cursor (Project), Configure Claude Code (Project) и Configure Codex CLI (Project) уже автоматически генерируют относительные пути.

Проектные кнопки (Cursor / Claude Code / Codex CLI) записывают запись MCP-сервера в директорию проекта Unity, а не в вашу глобальную конфигурацию пользователя, поэтому другие (не Unity) проекты не будут видеть предупреждения об ошибках подключения MCP. В частности, для Codex CLI (Project) вы должны подтвердить запрос о доверии проекту при первом запуске codex из корня проекта, иначе Codex проигнорирует файл <project>/.codex/config.toml.

Для JSON-клиентов (Cursor, Windsurf, Claude Code, GitHub Copilot и т.д.):

{
 "mcpServers": {
     "mcp-unity": {
        "command": "node",
        "args": [
           "ABSOLUTE/PATH/TO/mcp-unity/Server~/build/index.js"
        ]
     }
 }
}

Для области видимости рабочего пространства VS Code / GitHub Copilot (.vscode/mcp.json) используйте ${workspaceFolder}, чтобы путь был переносимым между машинами:

{
 "mcpServers": {
     "mcp-unity": {
        "command": "node",
        "args": [
           "${workspaceFolder}/Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"
        ]
     }
 }
}

Для Codex CLI (~/.codex/config.toml):

[mcp_servers.mcp-unity]
command = "node"
args = ["ABSOLUTE/PATH/TO/mcp-unity/Server~/build/index.js"]

Для Cursor — проектная локальная конфигурация (.cursor/mcp.json в корне проекта Unity, относительный путь проекта):

{
 "mcpServers": {
     "mcp-unity": {
        "command": "node",
        "args": [
           "Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"
        ]
     }
 }
}

Для Claude Code — проектная локальная конфигурация (.mcp.json в корне проекта Unity, относительный путь проекта — конфигурация MCP для команды в Claude Code):

{
 "mcpServers": {
     "mcp-unity": {
        "command": "node",
        "args": [
           "Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"
        ]
     }
 }
}

Для Codex CLI — проектная локальная конфигурация (.codex/config.toml в корне проекта Unity, относительный путь проекта):

[mcp_servers.mcp-unity]
command = "node"
args = ["Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"]

Codex накладывает этот файл поверх глобального ~/.codex/config.toml, но только когда проект помечен как доверенный. При первом входе в проект с помощью cd и запуске codex подтвердите запрос о доверии — в противном случае Codex проигнорирует .codex/config.toml.

Для OpenCode (opencode.json в корне проекта Unity):

{
"$schema": "https://opencode.ai/config.json",
"mcp": {
  "mcp-unity": {
    "type": "local",
    "enabled": true,
    "command": ["node", "Library/PackageCache/com.gamelovers.mcp-unity@<hash>/Server~/build/index.js"],
    "environment": {}
  }
}
}

Примечание: сегмент @<hash> в пути к кэшу пакета UPM изменяется при обновлении пакета. Если вы обновляете MCP Unity, перезапустите кнопку Configure (или обновите путь вручную), чтобы фрагмент указывал на новый каталог кэша.

Запуск MCP-сервера Unity Editor

  1. Откройте Unity Editor
  2. Перейдите в меню Tools > MCP Unity > Server Window
  3. Нажмите "Start Server" для запуска WebSocket-сервера
  4. Откройте вашу AI Coding IDE (например, Cursor, Windsurf, Claude Code, Codex CLI, GitHub Copilot, Google Antigravity, OpenCode и т.д.) и начните выполнять инструменты Unity

connect

Когда AI клиент подключится к WebSocket-серверу, это автоматически отобразится в зеленом поле в окне

Опционально: Установка WebSocket-порта

По умолчанию WebSocket-сервер запускается на порту '8090'. Вы можете изменить этот порт двумя способами:

  1. Откройте Unity Editor
  2. Перейдите в меню Tools > MCP Unity > Server Window
  3. Измените значение "WebSocket Port" на нужный номер порта
  4. Unity установит системную переменную окружения UNITY_PORT на новый номер порта
  5. Перезапустите сервер Node.js
  6. Снова нажмите "Start Server" для переподключения WebSocket Unity Editor к MCP-серверу Node.js

Опционально: Установка тайм-аута

По умолчанию тайм-аут между MCP-сервером и WebSocket составляет 10 секунд. Вы можете изменить его в зависимости от используемой операционной системы:

  1. Откройте Unity Editor
  2. Перейдите в меню Tools > MCP Unity > Server Window
  3. Измените значение "Request Timeout (seconds)" на желаемое количество секунд
  4. Unity установит системную переменную окружения UNITY_REQUEST_TIMEOUT на новое значение тайм-аута
  5. Перезапустите сервер Node.js
  6. Снова нажмите "Start Server" для переподключения WebSocket Unity Editor к MCP-серверу Node.js

[!TIP]
Тайм-аут между вашей AI Coding IDE (например, Claude Desktop, Cursor IDE, Windsurf IDE) и MCP-сервером зависит от IDE.

Опционально: Разрешение удалённых подключений MCP Bridge

По умолчанию WebSocket-сервер привязывается к 'localhost'. Чтобы разрешить подключения MCP Bridge с других устройств:

  1. Откройте редактор Unity
  2. Перейдите в Tools > MCP Unity > Server Window
  3. Включите флажок "Allow Remote Connections"
  4. Unity привяжет WebSocket-сервер к '0.0.0.0' (все интерфейсы)
  5. Перезапустите Node.js-сервер для применения новой конфигурации хоста
  6. Установите переменную среды UNITY_HOST на IP-адрес вашей машины Unity при удалённом запуске MCP Bridge: UNITY_HOST=192.168.1.100 node server.js

Отладка сервера

Сборка Node.js-сервера

Сервер MCP Unity построен на базе Node.js. Ему требуется компиляция кода TypeScript в JavaScript в директории build. В случае проблем вы можете принудительно установить его:

  1. Откройте редактор Unity
  2. Перейдите в Tools > MCP Unity > Server Window
  3. Нажмите кнопку "Force Install Server"

install

Если вы хотите собрать его вручную, выполните следующие шаги:

  1. Откройте терминал/PowerShell/командную строку

  2. Перейдите в директорию сервера: bash cd ABSOLUTE/PATH/TO/mcp-unity/Server~

  3. Установите зависимости: bash npm install

  4. Соберите сервер: bash npm run build

  5. Запустите сервер: bash node build/index.js

Отладка с помощью MCP Inspector

Отладка сервера с использованием @modelcontextprotocol/inspector: - Powershell powershell npx @modelcontextprotocol/inspector node Server~/build/index.js - Командная строка/Терминал cmd npx @modelcontextprotocol/inspector node Server~/build/index.js

Не забудьте остановить сервер с помощью Ctrl + C перед закрытием терминала или его отладкой с помощью MCP Inspector.

Включение журналов консоли

  1. Включите ведение журнала в вашем терминале или в файле log.txt:
  2. Powershell powershell $env:LOGGING = "true" $env:LOGGING_FILE = "true"
  3. Командная строка/Терминал cmd set LOGGING=true set LOGGING_FILE=true

Часто задаваемые вопросы

Что такое MCP Unity?

MCP Unity — это мощный мост, соединяющий среду вашего редактора Unity с инструментами ИИ-ассистентов (LLM) с использованием Протокола контекста моделей (MCP).

По сути, MCP Unity: - Представляет функционал редактора Unity (такой как создание объектов, модификация компонентов, запуск тестов и т.д.) в виде «инструментов» и «ресурсов», которые ИИ может понимать и использовать. - Запускает сервер WebSocket внутри Unity и сервер Node.js (действующий как WebSocket-клиент для Unity), который реализует MCP. Это позволяет ИИ-ассистентам отправлять команды в Unity и получать обратную информацию. - Позволяет использовать естественные языковые запросы с вашим ИИ-ассистентом для выполнения сложных задач в вашем проекте Unity, значительно ускоряя рабочие процессы разработки.

Почему стоит использовать MCP Unity?

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

  • Ускорение разработки: Автоматизация повторяющихся задач, генерация шаблонного кода и управление ресурсами с помощью запросов к ИИ. Это освобождает ваше время для творчества и решения сложных задач.
  • Повышение продуктивности: Взаимодействие с функциями редактора Unity без необходимости ручного перехода по меню или написания скриптов для простых операций. Ваш ИИ-ассистент становится прямым продолжением ваших возможностей внутри Unity.
  • Улучшение доступности: Позволяет пользователям, менее знакомым с тонкостями редактора Unity или скриптинга на C#, вносить значимый вклад и изменения в проект с помощью ИИ-руководства.
  • Бесшовная интеграция: Разработан для работы с различными ИИ-ассистентами и IDE, поддерживающими MCP, обеспечивая единый способ использования ИИ в вашем наборе инструментов для разработки.
  • Расширяемость: Протокол и набор инструментов можно расширять. Вы можете определять новые инструменты и ресурсы для предоставления большего количества функционала вашего проекта или Unity ИИ.
  • Потенциал для совместной работы: Открывает новый способ сотрудничества, где ИИ может помогать с задачами, традиционно выполняемыми членами команды, или помогать в адаптации новых разработчиков, направляя их по структуре проекта и операциям.

Как MCP Unity сравнивается с грядущими ИИ-функциями Unity 6.2?

Unity 6.2 представит новые встроенные ИИ-инструменты, включая предыдущие Unity Muse (для генеративных ИИ-возможностей, таких как генерация текстур и анимаций) и Unity Sentis (для запуска нейронных сетей в рантайме Unity). Поскольку Unity 6.2 еще не полностью выпущено, это сравнение основано на общедоступной информации и ожидаемых функциональных возможностях:

  • Фокус:
  • MCP Unity: В первую очередь сосредоточен на автоматизации и взаимодействии с редактором. Позволяет внешнему ИИ (например, ИИ-ассистентам для кодирования на основе LLM) управлять самим редактором Unity и запрашивать его для манипулирования сценами, ресурсами и настройками проекта. Речь идет о расширении рабочего процесса разработчика внутри редактора.
  • ИИ Unity 6.2:

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

  • MCP Unity: «Создай новый 3D-объект, назови его 'Player', добавь Rigidbody и установи его массу на 10.» «Запусти все тесты в Play Mode.» «Попроси исправить ошибку в логе консоли.» «Выполни пользовательский пункт меню 'Подготовить билд для iOS' и исправь любые ошибки, которые могут возникнуть.»
  • ИИ Unity 6.2: «Сгенерируй научно-фантастическую текстуру для этого материала.» «Обнови позиции всех деревьев на сцене, чтобы они находились в пределах зон террейна с тегом 'forest'.» «Создай анимацию ходьбы для этого персонажа.» «Сгенерируй 2D-спрайты, чтобы дополнить персонажа.» «Спроси подробности об ошибке в логе консоли.»

  • Дополняют, а не исключают друг друга: MCP Unity и нативные ИИ-инструменты Unity можно рассматривать как взаимодополняющие. Вы можете использовать MCP Unity с вашим ИИ-ассистентом для кодирования для настройки сцены или пакетной модификации ресурсов, а затем использовать ИИ-инструменты Unity для генерации конкретной текстуры или создания анимаций или 2D-спрайтов для одного из этих ресурсов. MCP Unity обеспечивает гибкий, основанный на протоколе способ взаимодействия с редактором, что может быть полезно для разработчиков, которые хотят интегрироваться с более широким спектром внешних ИИ-сервисов или создавать пользовательские рабочие процессы автоматизации.

Какие сейчас хосты MCP и IDE поддерживают MCP Unity?

MCP Unity разработан для работы с любым ИИ-ассистентом или средой разработки, которая может выступать в роли клиента MCP. Экосистема растет, но в настоящее время известными интеграциями или совместимыми платформами являются: - Cursor - Windsurf - Claude Desktop - Claude Code - Codex CLI - GitHub Copilot - Google Antigravity - OpenCode

Могу ли я расширить MCP Unity пользовательскими инструментами для моего проекта?

Да, абсолютно! Одним из важных преимуществ архитектуры MCP Unity является ее расширяемость. - В Unity (C#): Вы можете создавать новые классы C#, наследующие от McpToolBase (или аналогичной базы для ресурсов), чтобы предоставить пользовательский функционал редактора Unity. Эти инструменты затем регистрируются в McpUnityServer.cs. Например, вы можете написать инструмент для автоматизации конкретного пайплайна импорта ресурсов, уникального для вашего проекта. - В сервере Node.js (TypeScript): Затем вы определяете соответствующий обработчик инструмента TypeScript в директории Server/src/tools/, включая его схему Zod для ввода/вывода, и регистрируете его в Server/src/index.ts. Эта часть Node.js будет пересылать запрос на ваш новый C# инструмент в Unity.

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

MCP Unity можно использовать бесплатно?

Да, MCP Unity — это проект с открытым исходным кодом, распространяемый по лицензии MIT. Вы можете свободно использовать, изменять и распространять его в соответствии с условиями лицензии.

Почему я не могу подключиться к MCP Unity?

  • Убедитесь, что сервер WebSocket запущен (проверьте окно сервера в Unity)
  • Отправьте сообщение лога консоли из клиента MCP, чтобы принудительно переподключить клиент MCP и сервер Unity
  • Измените номер порта в окне MCP Server в редакторе Unity. (Tools > MCP Unity > Server Window)

Почему сервер MCP Unity не запускается?

  • Проверьте консоль Unity на наличие сообщений об ошибках
  • Убедитесь, что Node.js правильно установлен и доступен в вашем PATH
  • Проверьте, что все зависимости установлены в директории Server

Почему я получаю ошибку «Connection failed» при запуске тестов в Play Mode?

Инструмент run_tests возвращает следующий ответ:

Error:
Connection failed: Unknown error

Эта ошибка возникает из-за потери соединения моста при перезагрузке домена при переключении в Play Mode. Решением является отключение Reload Domain в Edit > Project Settings > Editor > "Enter Play Mode Settings".

Почему некоторые клиенты выдают ошибку KeyError: 'position' при инициализации инструмента?

Некоторые клиенты MCP могут выдавать ошибку при разборе схем инструментов, если они содержат локальные ссылки на JSON-указатели, такие как #/properties/position. MCP Unity избегает этого, регистрируя входные данные инструментов трансформации (set_transform, move_gameobject, rotate_gameobject, scale_gameobject) с новыми вложенными векторными схемами для каждого поля, так что сгенерированная схема не полагается на локальные ссылки #/properties/....

Если вы все еще видите эту ошибку: - обновите ваш клиент MCP до последней версии, - пересоберите Node-сервер (cd Server~ && npm run build), - убедитесь, что ваша версия пакета включает это исправление совместимости.

Устранение неполадок: сетевые проблемы WSL2 (Windows 11)

При запуске сервера MCP (Node.js) внутри WSL2, тогда как Unity работает в Windows 11, подключение к ws://localhost:8090/McpUnity может завершиться ошибкой ECONNREFUSED.

Причина: WSL2 и Windows имеют разные сетевые пространства имен — localhost внутри WSL2 не указывает на хост Windows. По умолчанию Unity слушает на localhost:8090.

Решение 1 — Включить зеркальный режим сети WSL2 (предпочтительно)

  • Windows 11: Параметры → Система → Для разработчиков → WSL → Включить «Зеркальный режим сети».
  • Или через .wslconfig (затем выполните wsl --shutdown и снова откройте WSL):
[wsl2]
networkingMode=mirrored

После включения localhost станет общим между Windows и WSL2, поэтому конфигурация по умолчанию (localhost:8090) будет работать.

Решение 2 — Указать клиенту Node IP-адрес хоста Windows

Установите в оболочке WSL перед запуском клиента MCP:

# Использовать IP-адрес хоста Windows, обнаруженный из resolv.conf
export UNITY_HOST=$(grep -m1 nameserver /etc/resolv.conf | awk '{print $2}')

При этом Server~/src/unity/mcpUnity.ts будет подключаться к ws://$UNITY_HOST:8090/McpUnity вместо localhost (он считывает UNITY_HOST и может также учитывать параметр Host в ProjectSettings/McpUnitySettings.json, если он присутствует).

Решение 3 — Разрешить удаленные подключения в Unity

  • Unity: Инструменты → MCP Unity → Окно сервера → включить «Разрешить удаленные подключения» (Unity привязывается к 0.0.0.0).
  • Убедитесь, что брандмауэр Windows разрешает входящие TCP-подключения к настроенному порту (по умолчанию 8090).
  • Из WSL2 подключитесь к IP-адресу хоста Windows (см. Решение 2) или к localhost, если включен зеркальный режим.

[!NOTE] Порт по умолчанию — 8090. Вы можете изменить его в окне сервера Unity (Инструменты → MCP Unity → Окно сервера). Значение отражается в McpUnitySettings и сохраняется в ProjectSettings/McpUnitySettings.json.

Проверка подключения

npm i -g wscat
# После включения зеркальной сети
wscat -c ws://localhost:8090/McpUnity
# Или используя IP-адрес хоста Windows
wscat -c ws://$UNITY_HOST:8090/McpUnity

Запуск тестов

Тесты на C# (Unity)

Запускайте тесты с помощью Test Runner в Unity: 1. Откройте редактор Unity 2. Перейдите в Окно > Основные > Test Runner 3. Выберите вкладку "EditMode" 4. Нажмите "Run All", чтобы выполнить все тесты

Тесты на TypeScript (Сервер)

Запускайте тесты с помощью Jest:

cd Server~
npm test

Для запуска тестов в режиме отслеживания:

npm run test:watch

Поддержка и обратная связь

Если у вас есть вопросы или вам нужна поддержка, пожалуйста, создайте задачу в этом репозитории или связаться по альтернативным каналам: - LinkedIn: - Discord: gamester7178 - Email: game.gamester@gmail.com

Участие в проекте

Приветствуется вклад! Пожалуйста, создавайте Pull Request или открывайте задачу с вашим предложением.

Фиксируйте изменения в соответствии с форматом Conventional Commits.

Лицензия

Этот проект находится под лицензией MIT

Благодарности

Комментарии
Войдите, чтобы оставить комментарий