修改
This commit is contained in:
378
agents.md
Normal file
378
agents.md
Normal file
@@ -0,0 +1,378 @@
|
||||
# Unity Project Agent Rules
|
||||
|
||||
你是当前 Unity 项目的开发助手。
|
||||
|
||||
在开始任何修改前,必须先阅读并遵守以下规则。
|
||||
|
||||
---
|
||||
|
||||
# 项目技术栈
|
||||
|
||||
Engine: Unity 2022.3 LTS
|
||||
|
||||
Language:
|
||||
- C#
|
||||
- 禁止生成 JavaScript / UnityScript
|
||||
|
||||
Render Pipeline:
|
||||
- URP
|
||||
|
||||
Target Platform:
|
||||
- PC
|
||||
- Android
|
||||
- iOS
|
||||
|
||||
---
|
||||
|
||||
# 工作流程
|
||||
|
||||
执行任何任务时:
|
||||
|
||||
1. 先分析目录结构
|
||||
2. 搜索是否已有实现
|
||||
3. 不重复创建系统
|
||||
4. 优先复用已有模块
|
||||
5. 先输出修改方案
|
||||
6. 确认后再写代码
|
||||
7. 修改后说明影响范围
|
||||
|
||||
禁止直接大规模重构。
|
||||
|
||||
禁止未经说明删除已有代码。
|
||||
|
||||
---
|
||||
|
||||
# 项目目录规范
|
||||
|
||||
Assets/
|
||||
|
||||
Scripts/
|
||||
Prefabs/
|
||||
Resources/
|
||||
Art/
|
||||
Resources/
|
||||
Plugins/
|
||||
Scenes/
|
||||
StreamingAssets/
|
||||
Settings/
|
||||
禁止:
|
||||
|
||||
- 在根目录随意创建脚本
|
||||
- 新建未知目录结构
|
||||
- 修改 Plugins
|
||||
|
||||
必须遵守现有目录结构。
|
||||
|
||||
---
|
||||
|
||||
# 命名规范
|
||||
|
||||
类:
|
||||
|
||||
PascalCase
|
||||
|
||||
示例:
|
||||
|
||||
PlayerController
|
||||
GameManager
|
||||
InventorySystem
|
||||
|
||||
字段:
|
||||
|
||||
_privateField
|
||||
|
||||
属性:
|
||||
|
||||
CurrentHealth
|
||||
|
||||
方法:
|
||||
|
||||
MovePlayer()
|
||||
LoadData()
|
||||
|
||||
常量:
|
||||
|
||||
MAX_PLAYER_COUNT
|
||||
|
||||
接口:
|
||||
|
||||
IInventory
|
||||
|
||||
枚举:
|
||||
|
||||
PlayerState
|
||||
|
||||
---
|
||||
|
||||
# MonoBehaviour规则
|
||||
|
||||
禁止:
|
||||
|
||||
一个脚本承担多个职责
|
||||
|
||||
避免:
|
||||
|
||||
God Object
|
||||
|
||||
每个 MonoBehaviour 只负责:
|
||||
|
||||
- 输入
|
||||
- UI
|
||||
- 状态
|
||||
- 行为
|
||||
|
||||
中的一种职责。
|
||||
|
||||
复杂逻辑拆到普通 C# 类。
|
||||
|
||||
---
|
||||
|
||||
# 架构原则
|
||||
|
||||
优先:
|
||||
|
||||
Manager
|
||||
Service
|
||||
事件驱动
|
||||
|
||||
避免:
|
||||
|
||||
FindObjectOfType()
|
||||
|
||||
禁止:
|
||||
|
||||
每帧:
|
||||
|
||||
GameObject.Find()
|
||||
|
||||
禁止:
|
||||
|
||||
在 Update 中频繁查找对象
|
||||
|
||||
缓存引用。
|
||||
|
||||
优先依赖注入。
|
||||
|
||||
优先事件系统。
|
||||
|
||||
---
|
||||
|
||||
# UI规则
|
||||
|
||||
使用:
|
||||
|
||||
Canvas
|
||||
Prefab
|
||||
UI组件
|
||||
|
||||
禁止:
|
||||
|
||||
代码动态硬编码创建复杂UI
|
||||
|
||||
优先:
|
||||
|
||||
[SerializeField]
|
||||
|
||||
不要使用:
|
||||
|
||||
public直接暴露字段
|
||||
|
||||
例如:
|
||||
|
||||
[SerializeField]
|
||||
private Button startButton;
|
||||
|
||||
而不是:
|
||||
|
||||
public Button startButton;
|
||||
|
||||
---
|
||||
|
||||
# 性能规则
|
||||
|
||||
禁止:
|
||||
|
||||
Update空轮询
|
||||
|
||||
避免:
|
||||
|
||||
GC Alloc
|
||||
|
||||
避免:
|
||||
|
||||
频繁new
|
||||
|
||||
避免:
|
||||
|
||||
LINQ出现在Update
|
||||
|
||||
避免:
|
||||
|
||||
字符串频繁拼接:
|
||||
|
||||
错误:
|
||||
|
||||
scoreText.text =
|
||||
"Score:"+score;
|
||||
|
||||
优先:
|
||||
|
||||
scoreText.text =
|
||||
$"Score:{score}"
|
||||
|
||||
对象池优先于Instantiate/Destroy。
|
||||
|
||||
---
|
||||
|
||||
# 日志规则
|
||||
|
||||
统一:
|
||||
|
||||
Debug.Log()
|
||||
|
||||
格式:
|
||||
|
||||
[模块名]
|
||||
|
||||
示例:
|
||||
|
||||
Debug.Log(
|
||||
"[Network] Connected"
|
||||
)
|
||||
|
||||
错误:
|
||||
|
||||
Debug.LogError(
|
||||
"[Inventory] Load Failed"
|
||||
)
|
||||
|
||||
禁止无上下文日志。
|
||||
|
||||
---
|
||||
|
||||
# 网络规则
|
||||
|
||||
网络逻辑统一放:
|
||||
|
||||
Scripts/Network/
|
||||
|
||||
禁止:
|
||||
|
||||
业务逻辑直接请求服务器
|
||||
|
||||
通过:
|
||||
|
||||
NetworkManager
|
||||
|
||||
统一转发
|
||||
|
||||
---
|
||||
|
||||
# ScriptableObject规则
|
||||
|
||||
配置数据:
|
||||
|
||||
使用 ScriptableObject
|
||||
|
||||
不要硬编码:
|
||||
|
||||
角色属性
|
||||
武器数据
|
||||
技能数据
|
||||
关卡配置
|
||||
|
||||
---
|
||||
|
||||
# 修改代码前必须检查
|
||||
|
||||
是否已有:
|
||||
|
||||
Manager
|
||||
|
||||
是否已有:
|
||||
|
||||
Service
|
||||
|
||||
是否已有:
|
||||
|
||||
工具类
|
||||
|
||||
是否已有:
|
||||
|
||||
Prefab
|
||||
|
||||
是否已有:
|
||||
|
||||
事件系统
|
||||
|
||||
优先复用。
|
||||
|
||||
---
|
||||
|
||||
# 输出代码规则
|
||||
|
||||
生成完整代码:
|
||||
|
||||
包含:
|
||||
|
||||
using
|
||||
|
||||
namespace
|
||||
|
||||
类定义
|
||||
|
||||
必要注释
|
||||
|
||||
不要只输出局部片段。
|
||||
|
||||
代码需要可直接复制运行。
|
||||
|
||||
---
|
||||
|
||||
# 回答规则
|
||||
|
||||
先解释:
|
||||
|
||||
修改思路
|
||||
|
||||
再输出:
|
||||
|
||||
代码
|
||||
|
||||
最后说明:
|
||||
|
||||
影响范围
|
||||
|
||||
性能影响
|
||||
|
||||
潜在风险
|
||||
|
||||
---
|
||||
|
||||
# 禁止行为
|
||||
|
||||
禁止:
|
||||
|
||||
直接删旧系统
|
||||
|
||||
禁止:
|
||||
|
||||
修改 ThirdParty
|
||||
|
||||
禁止:
|
||||
|
||||
改 Package 配置
|
||||
|
||||
禁止:
|
||||
|
||||
擅自升级 Unity
|
||||
|
||||
禁止:
|
||||
|
||||
创建重复功能
|
||||
|
||||
禁止:
|
||||
|
||||
猜测项目结构
|
||||
|
||||
不知道时先搜索。
|
||||
Reference in New Issue
Block a user