Files
webRtc/agents.md

379 lines
3.3 KiB
Markdown
Raw Normal View History

2026-05-24 14:39:45 +08:00
# 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
禁止:
创建重复功能
禁止:
猜测项目结构
不知道时先搜索。