使用说明
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工具
游戏对象
游戏对象。组件
编辑
编辑。选择
预制件
包裹
动画
时间线管理器
环境查询系统
骨架分析与可视化
交互式工具
|
资产
场景
相机
材料
着色器
脚本
可脚本化对象
调试
组件
AI模型工具
物理工具
图层工具
|
🚀 TODO路线图
架构层McpServer聚合器
工作流引擎
AI工具层动画和索具
高级EQS
可视化编程
UI和UX工具
资产层资产智能
|
传说: ✅ = 已实施并可用,🔲 = 计划/尚未实施
- 编辑器自动化:为自动化Unity编辑器操作提供丰富的API
- 人工智能集成:支持与AI模型的连接和交互
- 资产管理:提供用于管理和操纵Unity资产的工具
- 动画工具:用于读取和修改动画片段的工具
- 时间线工具:用于操纵Unity Timeline资产的工具
- 组件操作:提供用于访问和修改游戏对象组件的API
- 选择工具:用于在Unity编辑器中获取和设置选择
- EQS工具:用于智能空间查询、位置选择和对象放置的环境查询系统工具
- RayCast工具:支持多种光线类型(光线、球体、长方体、胶囊)和碰撞检测模式的物理光线投射工具
- 控制台日志:使用筛选器获取控制台日志
- 简化和压缩了工具的数量,确保模型的性能不会因过多的工具调用而降低。
安装
- 安装。净值9.0
- Git在本地克隆此存储库,并将其放置在Unity的Packages目录中,路径为Packages/com.miao.mcp/{存储库内容}
- 手动添加到manifest.json:
{
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"org.nuget"
]
}
]
}
用法
- 确保您的项目路径没有空格符号“”。
- ✅
C:/MyProjects/Project- ❌
C:/My Projects/Project
- 打开Unity项目,开始👉
Window/MCP Hub.
- 安装MCP客户端
- 登录MCP客户端
- 点击
Configure在您的MCP客户端。
- 重新启动MCP客户端。
- 确保
AI Connector重新启动后为“已连接”或“正在连接…”。 - 在客户端(Cursor、Claude Desktop)测试AI连接。在聊天中键入任何问题或任务。类似于:
Explain my scene hierarchy
AI配置(可选)
添加自定义 tool
⚠️ 它仅适用于支持动态工具列表更新的MCP客户端。
Unity MCP旨在支持自定义 tool 由项目业主开发。MCP服务器从Unity插件中获取数据并将其暴露给客户端。因此,MCP通信链中的任何人都会收到有关新消息的信息 tool。哪个法学硕士可能会在某个时候决定打电话。
添加自定义项 tool 您需要:
- 拥有一个具有属性的类
McpPluginToolType. - 在类中有一个具有属性的方法
McpPluginTool. - [可选]添加
Description为每个方法参数赋予属性,以便LLM能够理解。 - [可选]使用
string? optional = null属性与?以及将其标记为的默认值optionalLLM。
看那条线
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 进入项目。
- 分叉项目。
- 实施新
tool在您的分叉存储库中。 - 将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获得许可。
