2026-05-08 12:38:31 +08:00
|
|
|
|
---
|
|
|
|
|
|
name: compile-gameplay-dll
|
2026-05-08 13:41:29 +08:00
|
|
|
|
description: 编译 GamePlay C# 源码为 GamePlay.dll。触发关键词:编译 compile、GamePlay.dll、转换为Dll、build DLL、编译错误、Assembly Definition asmdef。
|
2026-05-08 14:06:56 +08:00
|
|
|
|
version: "1.0"
|
|
|
|
|
|
updated: "2026-05-08"
|
2026-05-08 12:38:31 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# Compile GamePlay DLL
|
|
|
|
|
|
|
2026-05-20 12:30:56 +08:00
|
|
|
|
## 触发规则
|
|
|
|
|
|
|
|
|
|
|
|
- 不要主动编译 GamePlay DLL。
|
|
|
|
|
|
- 修改 `GamePlay/` 下代码后,只提醒用户需要编译 DLL。
|
|
|
|
|
|
- 只有用户明确要求“编译 DLL / build DLL / 转换为 DLL / 执行 GamePlay.dll 编译”时,才执行本技能里的编译流程。
|
|
|
|
|
|
|
2026-05-08 12:38:31 +08:00
|
|
|
|
将 GamePlay 源码编译为 `GamePlay.dll`。
|
|
|
|
|
|
|
|
|
|
|
|
## 前置知识
|
|
|
|
|
|
|
2026-05-08 13:41:29 +08:00
|
|
|
|
- **源码位置**: `Assets/Code/Scripts/GamePlay/`(独立 Git 仓库)
|
|
|
|
|
|
- **产物位置**: `Assets/Code/Scripts/GamePlay_Dll/GamePlay.dll`(属于 NLDClient 仓库)
|
|
|
|
|
|
- **编译菜单**: `Tools/文件与路径/转换为Dll`(快捷键 F1)
|
2026-05-08 12:38:31 +08:00
|
|
|
|
- **Assembly Definition**: `Assets/Code/Scripts/GamePlay/GamePlay.asmdef`
|
|
|
|
|
|
|
2026-05-08 14:06:56 +08:00
|
|
|
|
## 不适用场景
|
|
|
|
|
|
|
|
|
|
|
|
- 只修改了 `GamePlay/` 以外的代码(Framework/GameWrapper/UI/ 等)→ 不需要编译 DLL
|
|
|
|
|
|
- 只修改了配置表 → 走 `luban-config` 流程即可
|
|
|
|
|
|
|
2026-05-08 13:41:29 +08:00
|
|
|
|
## 编译流程
|
|
|
|
|
|
|
|
|
|
|
|
根据是否有 Unity MCP 可用,选择对应路径:
|
|
|
|
|
|
|
|
|
|
|
|
### 路径 A:通过 Unity MCP 自动编译(优先)
|
|
|
|
|
|
|
2026-05-08 14:06:56 +08:00
|
|
|
|
> **前置检测**:首先确认 Unity MCP (`user-unityMCP`) 是否可用。可用则走此路径,不可用则自动降级到路径 B。
|
|
|
|
|
|
|
2026-05-08 13:41:29 +08:00
|
|
|
|
**前置步骤** — 确保代码最新:
|
|
|
|
|
|
1. `git pull` NLDClient 仓库(`../../`)
|
|
|
|
|
|
2. `git pull` GamePlay 仓库(`Assets/Code/Scripts/GamePlay`)
|
|
|
|
|
|
3. 刷新 Unity:
|
|
|
|
|
|
```
|
|
|
|
|
|
CallMcpTool: server="user-unityMCP", toolName="refresh_unity",
|
|
|
|
|
|
arguments={ "mode": "force", "scope": "all", "compile": "request", "wait_for_ready": true }
|
|
|
|
|
|
```
|
|
|
|
|
|
4. 检查编译错误,有错误则停止。
|
|
|
|
|
|
|
|
|
|
|
|
**执行编译**:
|
|
|
|
|
|
1. 调用菜单:
|
|
|
|
|
|
```
|
|
|
|
|
|
CallMcpTool: server="user-unityMCP", toolName="execute_menu_item",
|
|
|
|
|
|
arguments={ "menu_path": "Tools/文件与路径/转换为Dll" }
|
|
|
|
|
|
```
|
|
|
|
|
|
2. 等待编译完成 — 轮询 `editor_state`,检查 `isCompiling` 为 `false`。
|
|
|
|
|
|
3. 检查错误:
|
|
|
|
|
|
```
|
|
|
|
|
|
CallMcpTool: server="user-unityMCP", toolName="read_console",
|
|
|
|
|
|
arguments={ "action": "get", "types": ["error"], "count": "20" }
|
|
|
|
|
|
```
|
|
|
|
|
|
4. 有错误 → 报告并停止;无错误 → 编译成功。
|
|
|
|
|
|
|
|
|
|
|
|
### 路径 B:提示用户手动编译(无 MCP 时)
|
|
|
|
|
|
|
|
|
|
|
|
> 请在 Unity Editor 中执行:
|
|
|
|
|
|
> 1. 菜单 `Tools/文件与路径/转换为Dll`(或快捷键 F1)
|
|
|
|
|
|
> 2. 等待编译完成
|
|
|
|
|
|
> 3. 如有编译错误,将错误信息提供给 AI 修复
|
|
|
|
|
|
|
|
|
|
|
|
## 编译后处理
|
|
|
|
|
|
|
|
|
|
|
|
- 确认 `GamePlay_Dll/GamePlay.dll` 文件时间戳已更新
|
|
|
|
|
|
- 编译成功后 NLDClient 仓库会有变更(更新的 DLL 文件)
|
|
|
|
|
|
- 若需提交,走 `batch-git-ops` 流程(NLDClient + GamePlay 两个仓库)
|
2026-05-08 12:38:31 +08:00
|
|
|
|
|
|
|
|
|
|
## 安全规则
|
|
|
|
|
|
|
|
|
|
|
|
- 编译前确保所有 .cs 文件已保存
|
|
|
|
|
|
- 不要在编译过程中修改源码文件
|
|
|
|
|
|
- 编译失败时优先检查 Assembly Definition 引用是否完整
|
|
|
|
|
|
- DLL 编译成功后如涉及三仓变更,必须走 batch-git-ops 流程
|