以「Cursor → GPT → Unity」为核心的自动化生产线,构建可循环、可验证的 AI 游戏原型迭代体系。
🧭 核心理念
将 AI 工具链视作“生产协作体”:
| 工具 | 角色定位 | 职责 |
|---|---|---|
| Cursor | 生产工人 | 生成脚手架、实现功能 |
| GPT(评审官) | 总工程师 / 设计审计 | 检查设计一致性与风险 |
| Unity(测试工位) | QA 工程 | 进行自动化压测与结果回归 |
目标:一次命令,完成从设计 → 代码 → 压测 → 验收的完整循环。
🗂️ 项目结构与文件说明
/game
/Assets
/Packages
/ProjectSettings
/tools
generate.sh # 调用 Cursor / GPT 生成任务初稿
review.sh # GPT 设计与代码评审
stress.sh # Unity 批处理压测
gate.sh # 汇总验收逻辑
/docs
design.md # 设计原则、接口契约
tasks.md # 待办清单(Cursor 的输入)
/reports
review.json
metrics.json
🔁 工作循环(AI 自动执行)
0. 人工准备阶段
在 /docs/design.md 中定义:
- 功能目标
- 性能阈值
- 接口契约
在 /docs/tasks.md 中写明当前任务。
1. Cursor 自动生成代码
./tools/generate.sh自动根据任务生成脚本与组件。
2. GPT 设计/代码审查
./tools/review.sh输出 /reports/review.json,检查:
- 设计原则是否被破坏
- 是否有潜在性能/安全问题
- 是否缺少测试点
3. Unity 自动压测
./tools/stress.sh运行 Unity 无头模式(-batchmode),执行性能测试,输出 /reports/metrics.json。
4. Gate 验收环节
./tools/gate.sh根据阈值(FPS、内存、GC 等)和评审结果,决定是否合入。
⚙️ 核心脚本实现
stress.sh(Unity 压测)
#!/usr/bin/env bash
set -e
UNITY="/Applications/Unity/Hub/Editor/2022.3.XXf1/Unity.app/Contents/MacOS/Unity"
PROJECT_PATH="$(cd "$(dirname "$0")/.."; pwd)"
LOG_PATH="$PROJECT_PATH/reports/stress.log"
METRICS="$PROJECT_PATH/reports/metrics.json"
$UNITY -batchmode -nographics -quit -projectPath "$PROJECT_PATH/game" -executeMethod LoadTest.Run -logFile "$LOG_PATH"
python3 - <<'PY'
import json, re, pathlib
log = pathlib.Path("reports/stress.log").read_text(errors="ignore")
def grab(pat):
m = re.search(pat, log); return float(m.group(1)) if m else None
out = {
"fps_avg": grab(r"FPS_AVG:\s*([\d.]+)"),
"fps_p95": grab(r"FPS_P95:\s*([\d.]+)"),
"gc_mb_min": grab(r"GC_MB_PER_MIN:\s*([\d.]+)"),
"mem_peak_mb": grab(r"MEM_PEAK_MB:\s*([\d.]+)")
}
pathlib.Path("reports/metrics.json").write_text(json.dumps(out, indent=2))
print(out)
PYgate.sh(统一验收)
#!/usr/bin/env bash
set -e
REVIEW="reports/review.json"
METRICS="reports/metrics.json"
req_fps=60
req_p95=45
req_gc=30
req_mem=2000
ok_review=$(python3 - <<'PY'
import json
r=json.load(open("reports/review.json"))
print("OK" if len(r.get("blockers",[]))==0 else "NO")
PY
)
fps=$(python3 -c 'import json;print(json.load(open("reports/metrics.json"))["fps_avg"])')
p95=$(python3 -c 'import json;print(json.load(open("reports/metrics.json"))["fps_p95"])')
gc=$(python3 -c 'import json;print(json.load(open("reports/metrics.json"))["gc_mb_min"])')
mem=$(python3 -c 'import json;print(json.load(open("reports/metrics.json"))["mem_peak_mb"])')
if [ "$ok_review" = "OK" ] && (( $(echo "$fps >= $req_fps" | bc -l) )) && (( $(echo "$p95 >= $req_p95" | bc -l) )) && (( $(echo "$gc <= $req_gc" | bc -l) )) && (( $(echo "$mem <= $req_mem" | bc -l) )); then
echo "✅ PASS"
else
echo "❌ FAIL review=$ok_review fps=$fps p95=$p95 gc=$gc mem=$mem"
exit 1
fi🧠 GPT 评审模板(附于 design.md 顶部)
你是“设计与代码审计官”。
目标:确保实现严格符合《design.md》的“设计原则 / 接口契约 / 性能阈值”。
输出格式:
{
"blockers": [严重问题],
"warnings": [优化建议],
"tests": [应新增的测试用例]
}🧪 Unity 压测实现示例
文件路径:Assets/Tests/LoadTest.cs
using UnityEngine;
using UnityEngine.SceneManagement;
public class LoadTest {
public static void Run() {
SceneManager.LoadScene("StressScene");
// 模拟 Bot 执行逻辑
// 收集性能数据(FPS / GC / 内存)
Debug.Log($"FPS_AVG:{avg}");
Debug.Log($"FPS_P95:{p95}");
Debug.Log($"GC_MB_PER_MIN:{gc}");
Debug.Log($"MEM_PEAK_MB:{mem}");
}
}📊 自动化与集成建议
- 本地一键执行:
make run串联 4 步骤。 - CI 集成:在 GitHub Actions 中自动触发
review + stress + gate。 - 可视化监控:
metrics.json定期推送至仓库,Obsidian + Dataview 实现性能趋势可视化。
🚀 启动指南
- 初始化目录结构;
- 在
design.md定义性能与设计规则; - 用 Cursor 根据
tasks.md自动生成模块; - 执行:
./tools/review.sh && ./tools/stress.sh && ./tools/gate.sh - Gate 通过即合入,否则根据
review.json回修。
🔧 可拓展方向
- 增加
LoadTest.cs的行为树或智能体模拟; - 集成 GitHub Actions 性能报表上传;
- 增设 Slack/Discord 通知通道;
- 扩展至
AI World Simulation级自动生成与验证。
✅ 下一步建议:
- 生成
LoadTest.cs详细实现样例; - 创建
GitHub ActionsCI 流程模板; - 输出统一 YAML 流水线文件,实现真正意义上的“一键 AI 生产线”。