Unity编辑器AI集成工具

提供Unity编辑器与AI助手的实时集成,支持项目文件浏览、场景层次结构访问、代码执行等功能。

  • by quazaai
  • C#
  • 本地部署
  • 157 星标
  • 更新于
在 GitHub 查看 quazaai/UnityMCPIntegration

使用说明

🚀 先进的Unity MCP集成

此软件包提供了以下各项之间的无缝集成 模型上下文协议(MCP) Unity编辑器,允许AI助手实时理解您的Unity项目并与之交互。通过这种集成,AI助手可以访问有关场景层次结构、项目设置的信息,并直接在Unity编辑器上下文中执行代码。

📚 特性

  • 直接浏览和操作项目文件
  • 访问有关Unity项目的实时信息
  • 了解场景层次结构和游戏对象
  • 直接在Unity编辑器中执行C#代码
  • 监控日志和错误
  • 控制编辑器的播放模式
  • 等待代码执行

🚀 入门指南

先决条件

  • Unity 2021.3或更高版本
  • Node.js 18+(用于运行MCP服务器)

安装

1.安装Unity软件包

您有几个选项可以安装Unity软件包:

选项A:包管理器(Git URL)

  1. 打开Unity包管理器(Window > Package Manager)
  2. 点击 + 按钮并选择 Add package from git URL...
  3. 输入存储库URL: https://github.com/quazaai/UnityMCPIntegration.git
  4. 点击 Add

选项B:导入自定义包

  1. 克隆此存储库或 将其作为单元包下载
  2. 在Unity中,转到 Assets > Import Package > Custom Package
  3. 选择 UnityMCPIntegration.unitypackage 文件

2.设置MCP服务器

您有两个选项来运行MCP服务器:

选项A:直接运行服务器

  1. 导航到 mcpServer (likely <path-to-project>\Library\PackageCache\com.quaza.unitymcp@d2b8f1260bca\mcpServer\) 目录
  2. 安装依赖项:
    npm install
    
  3. 运行服务器:
    node build/index.js
    

选项B:添加到MCP主机配置

将服务器添加到Claude Desktop、自定义实现等的MCP主机配置中

{
  "mcpServers": {
    "unity-mcp-server": {
      "command": "node",
      "args": [
        "path-to-project>\\Library\\PackageCache\\com.quaza.unitymcp@d2b8f1260bca\\mcpServer\\mcpServer\\build\\index.js"
      ],
      "env": {
        "MCP_WEBSOCKET_PORT": "5010"
      }
    }
  }
}

演示视频

通过Smithery安装

通过以下方式自动安装Unity MCP Integration for Claude Desktop 史密瑟里:

npx -y @smithery/cli install @quazaai/unitymcpintegration --client claude

🔧 用法

调试和监控

您可以在Unity中打开MCP调试窗口来监视连接和测试功能:

  1. 首选 Window > MCP Debug
  2. 使用调试窗口可以:
    • 检查连接状态
    • 测试代码执行
    • 查看日志
    • 监控事件

可用工具

Unity MCP集成为AI助手提供了多种工具:

Unity编辑器工具
  • get_editor_state:获取有关Unity项目和编辑器状态的全面信息
  • get_current场景信息:获取当前场景的详细信息
  • 获取名称对象信息:获取场景中特定游戏对象的信息
  • execute_editor_command:直接在Unity编辑器中执行C#代码
  • get_logs:检索和过滤Unity控制台日志
  • 验证连接:检查是否与Unity编辑器有活动连接
文件系统工具
  • read_file:读取Unity项目中文件的内容
  • 读取多个文件:一次读取多个文件
  • write_file:用新内容创建或覆盖文件
  • edit_file:使用差异预览对现有文件进行有针对性的编辑
  • list_directory:获取目录中的文件和文件夹列表
  • 目录树:获取目录和文件的层次视图
  • 搜索文件:查找与搜索模式匹配的文件
  • 获取_文件_信息:获取特定文件或目录的元数据
  • find_assets_by_type:查找特定类型的所有资产(例如材料、预制件)
  • list_scripts:获取项目中所有C#脚本的列表

文件路径可以是绝对路径,也可以是相对于Unity项目的Assets文件夹的路径。例如, "Scenes/MyScene.unity" 指的是 <project>/Assets/Scenes/MyScene.unity.

🛠️ 建筑

集成由两个主要部分组成:

  1. Unity插件(C#):驻留在Unity编辑器中,并提供对编辑器API的访问
  2. MCP服务器(Types/Node.js):实现MCP协议并与Unity插件通信

它们之间的通信通过WebSocket进行,传输命令和数据的JSON消息。

文件系统访问

Unity MCP集成现在包括强大的文件系统工具,允许AI助手:

  • 浏览、读取和编辑Unity项目中的文件
  • 创建新文件和目录
  • 搜索特定文件或资产类型
  • 分析您的项目结构
  • 使用差异预览进行有针对性的代码更改

为了安全起见,所有文件操作都限制在Unity项目目录中。该系统智能地处理绝对路径和相对路径,为了方便起见,始终将它们相对于项目的Assets文件夹进行解析。

示例用法:

  • 获取目录列表: list_directory(path: "Scenes")
  • 读取脚本文件: read_file(path: "Scripts/Player.cs")
  • 编辑配置文件: edit_file(path: "Resources/config.json", edits: [{oldText: "value: 10", newText: "value: 20"}], dryRun: true)
  • 查找所有材料: find_assets_by_type(assetType: "Material")

👥 贡献

欢迎投稿!以下是您如何做出贡献:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 提交您的更改(git commit -m 'Add some amazing feature')
  5. 推到分支(git push origin feature/amazing-feature)
  6. 打开拉取请求

开发设置

团结一方:

  • 在Unity中打开项目
  • 修改中的C#脚本 UnityMCPConnection/Editor 目录

服务器端:

  • 导航到 mcpServer 目录
  • 安装依赖项: npm install
  • 对中的TypeScript文件进行更改 src 目录
  • 构建服务器: npm run build
  • 运行服务器: node build/index.js

📄 许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

📞 支持

如果您遇到任何问题或有疑问,请在GitHub存储库上提交问题。