Unity

UnityMCP 是一款 Unity 编辑器插件,通过 Model Context Protocol (MCP) 实现与 AI 助手的无缝集成,支持实时状态监控、远程命令执行和日志管理,提升开发效率与协作能力。

129 浏览
2025-12-12 发布

详细介绍

UnityMCP 是一款基于 WebSocket 的 Unity 编辑器插件,通过 Model Context Protocol (MCP) 实现与 AI 助手的实时通信。该插件支持 Unity 编辑器状态的实时监控、远程执行 C# 命令以及日志管理,适用于需要自动化开发流程、增强协作效率和 AI 辅助设计的场景。

核心功能

UnityMCP 提供了以下核心功能,帮助开发者更高效地与 Unity 编辑器进行交互:

  • 实时编辑器状态监控:通过 WebSocket 实时获取 Unity 编辑器的当前状态,包括活动的游戏对象、选择状态、播放模式等。
  • 远程命令执行:允许在 Unity 编辑器中远程执行 C# 代码,访问 UnityEngine 和 UnityEditor API,实现自动化操作。
  • 日志管理:收集并过滤 Unity 编辑器中的日志,支持按类型、内容和时间进行筛选,便于调试和优化。

安装方法

UnityMCP 的安装分为两部分:插件安装和服务器配置。

插件安装

UnityMCP 文件夹放入 Unity 项目中,并在 Unity 编辑器中导入该文件夹以完成插件安装。

服务器配置

确保已安装 Node.js 和 npm,然后在项目目录下运行以下命令:

npm install

使用方法

使用 UnityMCP 需要启动服务器并在 Unity 编辑器中配置插件。

启动服务器

在命令行中运行以下命令启动 MCP 服务器:

node server.js

配置 Unity 插件

在 Unity 编辑器中执行以下步骤:

  1. 打开 Unity 编辑器。
  2. Assets/Editor 文件夹中添加 MCPManager.cs 脚本。
  3. 将脚本附加到任意空物体上。
  4. 配置 WebSocket 服务器地址(默认为 ws://localhost:8080)。

使用示例

以下是两个典型的使用示例,展示如何通过 UnityMCP 执行远程命令。

示例一:将选中对象位置重置为原点

Selection.activeGameObject.transform.position = Vector3.zero;

该命令将当前选中的游戏对象位置设置为 (0, 0, 0)。

示例二:切换播放模式

EditorApplication.isPlaying = !EditorApplication.isPlaying;

该命令用于切换 Unity 编辑器的播放模式状态。

技术细节

UnityMCP 使用 WebSocket 实现双向实时通信,所有消息均采用 JSON 格式传输。

  • 传输方式:WebSocket
  • 端口号:默认为 8080
  • 消息格式:JSON

错误处理与安全机制

UnityMCP 提供了全面的错误处理机制,包括:

  • 连接中断处理
  • 命令执行失败处理
  • 编译错误处理
  • 运行时异常处理
  • 命令超时保护

此外,系统还提供日志记录和缓冲功能,确保通信的稳定性和安全性。

适用场景

UnityMCP 适用于以下场景:

  • 需要自动化开发流程的团队
  • 希望提升协作效率的多人开发环境
  • 需要 AI 辅助设计的游戏开发项目
  • 需要实时监控和远程控制 Unity 编辑器的场景

UnityMCP 通过实时通信和远程控制功能,为 Unity 开发者提供了强大的工具支持,显著提升了开发效率和协作能力。

unity mcp AI设计

相关服务推荐

查看更多