Unity LLM桥接工具

Unity-MCP是一个连接大型语言模型(LLM)与Unity的桥接工具,通过RPC网关和工作流引擎实现AI驱动的Unity编辑器自动化与资产管理系统。

  • by MiAO-AI-Lab
  • C#
  • 本地部署
  • 28 星标
  • 更新于
在 GitHub 查看 MiAO-AI-Lab/Unity-MCP

使用说明

Unity MCP(服务器+插件)

Unity版本 编辑模式 播放模式 独立
2022.3.61f1
2023.2.20f1
6000.0.46f1

Unity MCP 是LLM和Unity之间的桥梁。它向LLM Unity的工具公开并解释。LLM了解界面,并按照用户要求的方式使用工具。

连接 Unity MCP LLM客户端,例如 克劳德 或 光标 使用集成 AI Connector 窗户。也支持自定义客户端。

该项目旨在让开发人员很快添加自定义工具。之后,下一个目标是在玩家的构建中启用相同的功能。因为它只在Unity编辑器中工作。

系统是可扩展的:您可以定义自定义 tool直接在Unity项目代码库中,向AI或自动化客户端展示新功能。这使得Unity MCP成为构建高级工作流程、快速原型制作或将AI驱动功能集成到开发过程中的灵活基础。

✅新核心功能

🚀 1.工作流中间件体系结构

架构概述:

AI Agent → MCP Protocol → McpServer (Workflow Middleware) → Unity Runtime
                              ↓
                        RPC Gateway → ModelUse/Unity etc.
                              ↓  
                        Workflow Orchestration Engine

工作流体系结构

第1层:RPC网关

  • ✅ 动态Unity工具发现 -运行时发现通过 ToolRouter_ListAll 远程过程调用
  • ✅ 工具调用 -自动生成的工具代理
  • ✅ 统一接口 -所有RPC调用通过统一 IRpcGateway 接口

第2层:工作流编排

  • ✅ 表达式语法支持 - ${input.param}, ${step.result}
  • ✅ 条件执行 -步骤条件和重试策略
  • ✅ 多种步骤类型 - rpc_call, model_use, data_transform

2.人工智能模型集成与模型使用API

为Unity提供完整的人工智能模型使用API:

  • 双向通信:Unity运行时↔ MCP服务器↔ 代理
  • 反向模型调用:Unity可以主动请求Agent的AI模型功能
  • 型号类型支持:文本、视觉、代码分析和其他人工智能模型
  • 统一的API接口:通过ModelUse API统一访问各种人工智能服务

3.交互式用户输入系统

  • ✅ 询问用户输入工具 -交互式用户输入收集
  • ✅ 撤消和恢复系统 -游戏对象操作的完整撤消/重做功能

4.工具系统

添加了许多工具功能

AI工具

游戏对象

  • ✅ 创建
  • ✅ 摧毁
  • ✅ 找到
  • ✅ 修改(标签、图层、名称、静态)
  • ✅ 设置父级
  • ✅ 复制
  • ✅ 设置活动/非活动
  • ✅ 设置组件活动/非活动
游戏对象。组件
  • ✅ 添加组件
  • ✅ 获取组件
  • ✅ 修改组件
    • ✅ Field 设定值
    • ✅ Property 设定值
    • ✅ Reference 链接集
  • ✅ 销毁组件
  • ✅ 缺失组件检测
  • 🔲 移除缺失的组件

编辑

  • ✅ 状态(播放模式)
    • ✅ 获取
    • ✅ 集
  • ✅ 获取Windows
  • ✅ 层
    • ✅ 获取全部
    • ✅ 添加
    • ✅ 移除
  • ✅ 标签
    • ✅ 获取全部
    • ✅ 添加
    • ✅ 移除
  • ✅ 执行 MenuItem
  • 🔲 运行测试

编辑。选择

  • ✅ 获取选择
  • ✅ 设置选择

预制件

  • ✅ 实例化
  • ✅ 创建
  • ✅ 打开
  • ✅ 修改(游戏对象修改)
  • ✅ 保存
  • ✅ 关闭

包裹

  • 🔲 安装
  • 🔲 安装
  • 🔲 移除
  • 🔲 更新

动画

  • ✅ 添加事件
  • ✅ 阅读剪辑

时间线管理器

  • ✅ 创建和附加
  • ✅ 添加曲目
  • ✅ 列出曲目
  • ✅ 添加剪辑
  • ✅ 添加标记
  • ✅ 获取标记
  • ✅ 添加信号标记

环境查询系统

  • ✅ 智能空间查询
    • ✅ 感兴趣的领域
    • ✅ 刚性条件
    • ✅ 软评分
    • ✅ 重量综合
  • ✅ 选址
  • ✅ 对象放置

骨架分析与可视化

  • ✅ 骨架层次分析
  • ✅ 骨参考检测

交互式工具

  • ✅ 等待用户输入

资产

  • ✅ 创建
  • ✅ 找到
  • ✅ 刷新
  • ✅ 阅读
  • ✅ 修改
  • ✅ 重命名
  • ✅ 删除
  • ✅ 移动
  • ✅ 创建文件夹

场景

  • ✅ 创建
  • ✅ 保存
  • ✅ 负载
  • ✅ 卸载
  • ✅ 加载
  • ✅ 获取层次结构
  • ✅ 搜索(编辑)
  • ✅ Raycast(了解卷)

相机

  • ✅ 相机控制
  • ✅ 屏幕捕获

材料

  • ✅ 创建
  • ✅ 修改(资产.修改)
  • ✅ 读取(资产读取)
  • ✅ 指定给游戏对象上的组件

着色器

  • ✅ 列出全部

脚本

  • ✅ 阅读
  • ✅ 更新或创建
  • ✅ 删除

可脚本化对象

  • ✅ 创建
  • ✅ 阅读
  • ✅ 修改
  • ✅ 移除

调试

  • ✅ 读取日志(控制台)

组件

  • ✅ 获取全部

AI模型工具

  • ✅ 模型使用文本
  • ✅ 模型使用愿景
  • ✅ 型号使用代码

物理工具

  • ✅ 射线投射
  • ✅ 球体铸造
  • ✅ 箱体铸造
  • ✅ 胶囊铸造
  • ✅ 重叠
  • ✅ 视线
  • ✅ MultiRay

图层工具

  • ✅ 列出图层
  • ✅ 计算图层掩码
  • ✅ 解码层掩码
  • ✅ 场景分析

🚀 TODO路线图

架构层

McpServer聚合器

  • 🔲 多型号兼容性
  • 🔲 多上游数据流
    • 🔲 Unity集成
    • 🔲 3dsMax集成
    • 🔲 Maya集成
    • 🔲 胡迪尼集成
    • 🔲 Figma集成
  • 🔲 定制中间件系统
  • 🔲 共享上下文
  • 🔲 流水线并行执行

工作流引擎

  • ✅ 数据流编排
  • ✅ 流水线并行执行
  • 🔲 错误处理和回滚
  • 🔲 工作流模板

AI工具层

动画和索具

  • 🔲 Animator状态机编辑器
  • 🔲 动画师过渡工具
  • 🔲 动画剪辑处理
  • 🔲 骨检测工具
  • 🔲 附着点工具

高级EQS

  • 🔲 增强的空间智能EQS

可视化编程

  • 🔲 Unity可视化脚本生成
  • 🔲 行为设计器集成
  • 🔲 NodeCanvas集成
  • 🔲 自定义节点创建
  • 🔲 流程图分析/测试

UI和UX工具

  • 🔲 UXML\USS生成
  • 🔲 USS一代
  • 🔲 UI工具包集成
  • 🔲 数据绑定

资产层

资产智能

  • 🔲 特征识别
  • 🔲 资产指数化
  • 🔲 嵌入/元数据生成
  • 🔲 相似性检测
  • 🔲 自动分类
  • 🔲 依赖关系映射

传说: ✅ = 已实施并可用,🔲 = 计划/尚未实施

  • 编辑器自动化:为自动化Unity编辑器操作提供丰富的API
  • 人工智能集成:支持与AI模型的连接和交互
  • 资产管理:提供用于管理和操纵Unity资产的工具
  • 动画工具:用于读取和修改动画片段的工具
  • 时间线工具:用于操纵Unity Timeline资产的工具
  • 组件操作:提供用于访问和修改游戏对象组件的API
  • 选择工具:用于在Unity编辑器中获取和设置选择
  • EQS工具:用于智能空间查询、位置选择和对象放置的环境查询系统工具
  • RayCast工具:支持多种光线类型(光线、球体、长方体、胶囊)和碰撞检测模式的物理光线投射工具
  • 控制台日志:使用筛选器获取控制台日志
  • 简化和压缩了工具的数量,确保模型的性能不会因过多的工具调用而降低。

安装

  1. 安装。净值9.0
  2. Git在本地克隆此存储库,并将其放置在Unity的Packages目录中,路径为Packages/com.miao.mcp/{存储库内容}
  3. 手动添加到manifest.json:
{
    "scopedRegistries": [
        {
        "name": "package.openupm.com",
        "url": "https://package.openupm.com",
        "scopes": [
            "org.nuget"
        ]
        }
    ]
}

用法

  1. 确保您的项目路径没有空格符号“”。
  • ✅ C:/MyProjects/Project
  • ❌ C:/My Projects/Project
  1. 打开Unity项目,开始👉 Window/MCP Hub.
  1. 安装MCP客户端
  1. 登录MCP客户端
  2. 点击 Configure 在您的MCP客户端。
  1. 重新启动MCP客户端。
  2. 确保 AI Connector 重新启动后为“已连接”或“正在连接…”。
  3. 在客户端(Cursor、Claude Desktop)测试AI连接。在聊天中键入任何问题或任务。类似于:
  Explain my scene hierarchy

AI配置(可选)

添加自定义 tool

⚠️ 它仅适用于支持动态工具列表更新的MCP客户端。

Unity MCP旨在支持自定义 tool 由项目业主开发。MCP服务器从Unity插件中获取数据并将其暴露给客户端。因此,MCP通信链中的任何人都会收到有关新消息的信息 tool。哪个法学硕士可能会在某个时候决定打电话。

添加自定义项 tool 您需要:

  1. 拥有一个具有属性的类 McpPluginToolType.
  2. 在类中有一个具有属性的方法 McpPluginTool.
  3. [可选]添加 Description 为每个方法参数赋予属性,以便LLM能够理解。
  4. [可选]使用 string? optional = null 属性与 ? 以及将其标记为的默认值 optional LLM。

看那条线 MainThread.Instance.Run(() => 它允许在主线程中运行与Unity API交互所需的代码。如果你不需要它,并且在后台线程中运行该工具对该工具来说是可以的,那么为了提高效率,不要使用主线程。

[McpPluginToolType]
public class Tool_GameObject
{
    [McpPluginTool
    (
        "MyCustomTask",
        Title = "Create a new GameObject"
    )]
    [Description("Explain here to LLM what is this, when it should be called.")]
    public string CustomTask
    (
        [Description("Explain to LLM what is this.")]
        string inputData
    )
    {
        // do anything in background thread

        return MainThread.Instance.Run(() =>
        {
            // do something in main thread if needed

            return $"[Success] Operation completed.";
        });
    }
}

在游戏中添加自定义 tool

⚠️ 尚未得到支持。工作正在进行中

🎯 中间件工作流

工作流定义语法:

{
  "id": "simple_equipment_binding",
  "steps": [
    {
      "id": "find_character",
      "type": "rpc_call", 
      "connector": "unity",
      "operation": "GameObject_Find",
      "parameters": { "name": "${input.characterName}" }
    },
    {
      "id": "validate_character",
      "type": "model_use",
      "connector": "model_use", 
      "operation": "text",
      "parameters": { "prompt": "Validate: ${find_character.result}" }
    }
  ]
}

贡献

欢迎添加新内容 tool 进入项目。

  1. 分叉项目。
  2. 实施新 tool 在您的分叉存储库中。
  3. 将Pull Request创建为原始请求 Unity MCP 存储库。

归因

该项目基于最初的开源项目 伊万·穆扎克 并通过以下方式进行了广泛的修改和扩展 苗族.

原始项目

  • 作者:伊万·穆扎克
  • 原始存储库: https://github.com/IvanMurzak/Unity-MCP
  • 许可证:Apache许可证2.0

修改和扩展

  • 修改者:MiAO(ai@miao.company)
  • 年: 2025
  • 重大变化:[在此处列出主要修改]

我们感谢原作者Ivan Murzak对开源社区的贡献!

许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

该项目包括Ivan Murzak的原始作品中的组件,也根据Apache License 2.0获得许可。