Files
webRtc/agents.md
2026-05-24 14:39:45 +08:00

3.3 KiB

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

禁止:

创建重复功能

禁止:

猜测项目结构

不知道时先搜索。