使用说明

项目简介

YetAnotherUnityMcp 是一个使用 Model Context Protocol (MCP) 连接 Unity 游戏引擎和 AI 工具的系统。它包含一个 Unity .NET/C# 插件(MCP 客户端)和一个 Python MCP 服务器(使用 FastMCP 构建)。Unity 和服务器之间通过 WebSockets 进行通信,实现 JSON 消息和图像数据的实时双向交换。该项目旨在让 AI agent(例如 LLM 助手)以结构化和安全的方式检查和控制正在运行的 Unity 场景。

主要功能点

  • 资源管理: 通过 MCP 资源 (Resources) 向 LLM 提供 Unity 编辑器状态和场景信息,例如场景层级结构、对象属性和编辑器日志。
  • 工具注册与执行: 注册并执行 MCP 工具 (Tools),允许 LLM 调用 Unity 编辑器的功能,例如:
    • 执行 C# 代码:在 Unity 编辑器中远程执行 C# 代码。
    • 屏幕截图:控制 Unity 编辑器截屏,并可指定分辨率和输出路径。
    • 对象属性修改:远程修改 Unity 场景中 GameObject 的属性。
    • 获取日志:获取 Unity 编辑器的日志信息。
    • 获取 Unity 信息:获取 Unity 版本、平台、项目名称等信息。
  • Prompt 模板: 提供 Prompt 模板 (Prompts) 用于定义与 Unity 交互的模式,例如创建 GameObject 和诊断错误。
  • 实时通信: 使用 WebSocket 进行实时双向通信,保证低延迟和持久连接。
  • 本地回退: 在服务器不可用时,Unity 插件支持本地命令执行作为回退方案。

安装步骤

  1. 服务器端安装 (Python)

    打开终端,按照以下步骤操作:

    # 克隆仓库
    git clone https://github.com/Azreal42/YetAnotherUnityMcp.git
    cd YetAnotherUnityMcp
    
    # 创建并激活虚拟环境 (推荐使用 Python 3.11)
    uv venv -p 3.11
    source .venv/bin/activate  # 或 .venv\Scripts\activate (Windows)
    
    # 安装服务器依赖
    uv pip install -e ".[dev]"
  2. 启动 MCP 服务器

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

    python -m server.websocket_mcp_server

    服务器默认监听 'ws://localhost:8080/ws'。

  3. Unity 插件安装

    打开你的 Unity 工程 (Unity 2020.3 或更高版本),选择以下任一方式导入插件:

    • 复制文件夹: 将仓库 'plugin/Scripts' 文件夹复制到 Unity 项目的 'Assets' 目录下。
    • 导入 Unity Package: 创建 Unity Package 并导入。
    • 创建符号链接: 使用符号链接 (Symbolic Link) 进行开发 (参考 README.md)。
  4. 配置 Unity 插件

    • 在 Unity 场景中创建一个空 GameObject。
    • 为该 GameObject 添加 'MCPClient' 组件 (路径: 'Scripts/Editor')。
    • 在 'MCPClient' 组件的 Inspector 面板中,配置 Server URL 为 MCP 服务器的 WebSocket 地址 ('ws://localhost:8080/ws' 或根据实际情况修改)。
  5. 打开 MCP 编辑器窗口

    在 Unity 编辑器菜单栏中,选择 'Window > WebSocket MCP Client' 打开 WebSocket MCP 客户端窗口。

  6. 连接服务器并测试

    在 WebSocket MCP 客户端窗口中,点击 "Connect" 按钮连接到 MCP 服务器。连接成功后,可以测试各项 MCP 功能,例如执行代码、截屏、修改对象属性、获取日志和 Unity 信息。

服务器配置

MCP 服务器端 (Python) 启动命令为:

{
  "server name": "Unity MCP WebSocket Server",
  "command": "python",
  "args": ["-m", "server.websocket_mcp_server"]
}

基本使用方法

  1. 确保 MCP 服务器已启动并运行。
  2. 在 Unity 编辑器中打开 WebSocket MCP 客户端窗口 ('Window > WebSocket MCP Client')。
  3. 配置正确的服务器 URL 并点击 "Connect" 连接服务器。
  4. 使用客户端窗口中的各项功能按钮和输入框,例如:
    • 在 "Execute Code" 区域输入 C# 代码,点击 "Execute" 执行代码。
    • 在 "Take Screenshot" 区域配置截图路径和分辨率,点击 "Take Screenshot" 截取屏幕。
    • 在 "Modify Object" 区域输入 GameObject ID、属性路径和属性值,点击 "Modify" 修改对象属性。
    • 点击 "Get Unity Info" 和 "Get Logs" 按钮获取 Unity 信息和日志。
  5. 查看 "Result" 区域显示的操作结果。

信息

分类

开发者工具