Aura 的 Unity C# 编码代理工作流
解决的问题与适用场景
面向 Unity 项目中的 C# 文件创建、编辑、搜索与编译检查,覆盖 MonoBehaviour、ScriptableObject、编辑器脚本和工具类。
工具、版本与前置条件
- Aura:版本:原文未说明;前置条件:文件读写工具限定在 Unity 项目根目录内,无法访问项目文件夹以上位置。。
- read_file:版本:原文未说明;前置条件:原文未说明。
- grep:版本:原文未说明;前置条件:原文未说明。
- list_code_definition_names:版本:原文未说明;前置条件:原文未说明。
- replace_in_file:版本:原文未说明;前置条件:原文未说明。
- write_to_file:版本:原文未说明;前置条件:原文未说明。
- check_compile_errors:版本:原文未说明;前置条件:编译循环假设起始状态可干净编译。。
- execute_command:版本:原文未说明;前置条件:命令限定在项目根目录,运行时间上限为 120 秒。。
操作步骤与工作流衔接
1. 要求 Aura 创建新的 C# 文件,它会选择 Assets/ 下的合理位置,或由用户指定位置。
- 输入:提示词示例:在 Assets/Scripts/Combat/ 下创建名为 HealthComponent 的 MonoBehaviour,包含 CurrentHealth / MaxHealth 一对字段、TakeDamage(int) 方法和 Died UnityEvent。
- 输出:Aura 在聊天中返回生成的代码,并提供 Accept / Reject 控件供写入文件前审阅。
- 后处理与接入:原文未说明
2. 编辑现有脚本时,Aura 通过 read_file、grep 和 list_code_definition_names 读取相关文件,再用 replace_in_file 或 write_to_file 应用修改。
- 输入:提示词示例:在 @PlayerController.cs 中把庞大的 Update() 拆分为 HandleMovementInput()、HandleCombatInput() 和 ApplyMovement(),保持行为不变。
- 输出:通过 replace_in_file 或 write_to_file 将修改写入文件。
- 后处理与接入:可通过 @ 提及或从 Project 窗口拖放,把文件作为上下文提供给 Aura。
3. 在非平凡编辑后运行 check_compile_errors,确认项目仍可编译。
- 输入:非平凡编辑后的项目状态。
- 输出:若编译失败,Aura 在聊天中显示错误并迭代,直到清除错误或向用户求助。
- 后处理与接入:若有错误,Aura 读取相关文件尝试修复,然后重新检查。
4. 使用 grep 在项目中执行快速 ripgrep 搜索。
- 输入:提示词示例:查找使用 WaitForSeconds 超过 5 秒的每个 IEnumerator。
- 输出:报告文件与行号。
- 后处理与接入:原文未说明
5. 使用 list_code_definition_names 从文件或文件夹提取函数、类、结构体名称。
- 输入:提示词示例:总结 Assets/Scripts/Inventory/ 的 API 表面。
- 输出:输出函数、类、结构体名称。
- 后处理与接入:原文未说明
6. 通过 execute_command 在项目目录中运行 shell 命令。
- 输入:提示词示例:对 Assets/Scripts/ 运行 dotnet format。
- 输出:原文未说明
- 后处理与接入:不确定时先在 Plan 模式运行,让 Aura 展示其打算执行的命令。
原作者的结果与限制
- 结果:原文未说明
- 限制与踩坑:不支持 Visual Scripting / Bolt 图;Aura 只处理 C# 源文件,不处理 .asset 支持的视觉图。
原文与来源
- 作者:原文未说明
- 来源:Aura Unity and Unreal AI coding guides
- 原文日期:原文未说明
- 阅读原文
本文为基于原文整理的中文导读,效果与结论归属于原作者。