全面整合U3D
优质学习资源站

Unity C# 风格指南(Unity官方英文文档整理)

原则:可读性优先;团队一致;规则随项目更新;先写对,再写干净。


1. 命名

  • 使用有意义、可读、可搜索、可发音的名称,避免随意缩写。
  • 变量用名词;布尔变量用动词前缀:isDead、hasDamage。
  • 类型名避免过泛:用 PhysicsSolver,不用 Solver。
  • 避免冗余名:类 Player 中直接用 Score,不用 PlayerScore。
  • 避免 snake_case、kebab-case、匈牙利命名法。

2. 大小写与前缀

  • 类型、方法、属性、公共字段、枚举:PascalCase。
  • 局部变量、参数、私有变量:camelCase。
  • 文件中有 MonoBehaviour 时,文件名必须与类名一致。
  • 私有成员前缀团队三选一,并保持一致:
    • m_ 成员 / s_ 静态 / k_ 常量;
    • _ 前缀;
    • 不加前缀。
  • 删除冗余初始化:int = 0、引用类型 = null 不必写。
  • 访问修饰符保持一致;推荐显式写 private。

3. 格式与空格

  • 大括号风格二选一:K&R 或 Allman,团队统一。
  • 行宽建议 ≤120 字符;长行拆成短语句。
  • 流程控制条件前一个空格:while (x == y)。
  • 括号内不加空格:dataArray[index]。
  • 参数逗号后一个空格:CollectItem(a, 0, 1);
  • 函数名与括号之间不加空格:DropPowerUp(...)。
  • 比较运算符前后加空格。
  • 多数情况一行一个变量声明。

4. 注释

  • 只在代码不能自解释时注释。
  • 重点解释 “为什么”,不是“是什么/怎么做”。
  • 优先重命名,再考虑注释;复杂逻辑考虑重构。
  • 序列化字段需解释时用 [Tooltip],不写普通注释。
  • 公共方法前用 XML <summary>。
  • 不写署名注释;用版本控制追踪变更。
  • 不鼓励用 #region 隐藏复杂度。

5. 类组织顺序

  1. 字段
  2. 属性
  3. 事件
  4. MonoBehaviour 方法(Awake/Start/OnEnable/OnDisable/OnDestroy 等)
  5. 公共方法
  6. 私有方法
  7. 其他类

6. using 与命名空间

  • using 放文件顶部;删除未使用项,保留最小必需集合。
  • 命名空间用 PascalCase,不加特殊符号/下划线。
  • 子命名空间用点号:MyApplication.GameFlow。
  • 可让命名空间反映文件夹结构。

7. 枚举、接口、类

  • 枚举:PascalCase;名称用单数名词;不加前后缀。
  • Flags 枚举:用复数名词;二进制值可列对齐,或用 1 << n。
  • 接口:以 I 开头,后接形容词短语,如 IDamageable。
  • 类/结构体:PascalCase;用名词或名词短语;避免前缀。
  • 一个文件一个 MonoBehaviour。

8. 字段、属性、事件、方法

字段

  • 名词命名;布尔用动词前缀。
  • 公共字段 PascalCase;私有变量 camelCase。
  • Inspector 显示私有字段用 [SerializeField]。
  • 范围限制用 [Range],说明用 [Tooltip]。

属性

  • 属性优先于公共字段。
  • PascalCase;只读可用表达式体;其他用 { get; set; },团队统一。
  • 复杂 get/set 逻辑改用方法。

事件

  • 动词短语命名;现在分词表示“之前”,过去分词表示“之后”。
  • 多数用 System.Action;必要时自定义 EventArgs。
  • 事件触发方法用 On 前缀:OnDoorOpened。
  • 事件处理方法可用 Subject_Event 命名。

方法

  • 动词或动词短语开头:GetDirection、FindTarget。
  • 返回 bool 的方法用问题式:IsGameOver、HasStartedTurn。
  • 参数 camelCase。
  • 避免过长方法、过多参数(>3 考虑封装)、过度重载、副作用。
  • 避免用 flag 让一个方法多模式工作,拆成命名明确的方法。

9. var、switch、大括号

  • 类型从上下文清晰时可用 var;foreach 中推荐 var。
  • 长 if-else 链优先改 switch;格式团队统一。
  • 大括号尽量不省略,即使单行;嵌套多行必须保留。
  • 单行语句建议写成多行,便于调试。
未经允许不得转载:Unity爱好者 » Unity C# 风格指南(Unity官方英文文档整理)