| Unity 版本 | 编辑模式 | 播放模式 | 独立模式 |
|---|---|---|---|
| 2022.3.61f1 | |||
| 2023.2.20f1 | |||
| 6000.0.46f1 |
Unity-MCP 是一个连接大型语言模型(LLM)与Unity的桥梁。它向LLM暴露并解释了Unity的工具。LLM理解接口,并根据用户请求的方式利用这些工具。
通过集成的 AI Connector 窗口,将 Unity-MCP 连接到LLM客户端,如 Claude 或 Cursor。支持自定义客户端。
该项目旨在让开发者能够添加自定义工具。接下来的目标是在玩家构建中启用相同的功能。目前仅在Unity编辑器中工作。
该系统是可扩展的:您可以在Unity项目代码库中直接定义自定义 tool,向AI或自动化客户端暴露新的能力。这使得Unity-MCP成为构建高级工作流程、快速原型设计或将AI驱动功能集成到开发过程中的灵活基础。
架构概述:
AI代理 → MCP协议 → McpServer(工作流中间件)→ Unity运行时
↓
RPC网关 → ModelUse/Unity等
↓
工作流编排引擎
层1:RPC网关
ToolRouter_ListAll RPC 实现运行时发现IRpcGateway 接口层2:工作流编排
${input.param},${step.result}rpc_call,model_use,data_transform提供Unity完整的AI模型使用API:
增加了众多工具特性
字段 设置值属性 设置值引用 链接设置MenuItem图例: ✅ = 已实现并可用,🔲 = 计划/尚未实现
{
"scopedRegistries": [
{
"name": "package.openupm.com",
"url": "https://package.openupm.com",
"scopes": [
"org.nuget"
]
}
]
}
- ✅
C:/MyProjects/Project- ❌
C:/My Projects/Project
窗口/MCP Hub。配置。AI连接器 在重启后处于“已连接”或“正在连接...”状态。 解释我的场景层次结构
tool⚠️ 它仅适用于支持动态工具列表更新的MCP客户端。
Unity-MCP旨在支持项目所有者开发自定义 tool。MCP服务器从Unity插件获取数据并将其暴露给客户端。因此,MCP通信链中的任何人都会收到有关新 tool 的信息。LLM可能会决定在某个时刻调用它。
要添加自定义 tool,您需要:
McpPluginToolType 属性的类。McpPluginTool 属性的方法。Description 属性,以便LLM理解它。string? optional = null 属性和 ? 默认值来标记它们为LLM的 可选。注意
MainThread.Instance.Run(() =>这一行,它允许在主线程中运行代码,这对于与Unity API交互是必要的。如果您不需要它,并且在后台线程中运行工具是可以接受的,请为了效率考虑不要使用主线程。
[McpPluginToolType]
public class Tool_GameObject
{
[McpPluginTool
(
"MyCustomTask",
Title = "创建一个新的GameObject"
)]
[Description("在这里向LLM解释这是什么,何时应该调用它。")]
public string CustomTask
(
[Description("向LLM解释这是什么。")]
string inputData
)
{
// 在后台线程中执行任何操作
return MainThread.Instance.Run(() =>
{
// 如果需要,在主线程中执行某些操作
return $"[成功] 操作完成。";
});
}
}
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