【Unity】个人编码规范

【Unity】个人编码规范

文件结构规范

先确保动静态分离

当一个类存在静态和非静态两种成员时,需要利用 partial 将类分成两部分,分别存放静态与非静态成员。

再按访问修饰符排序

  1. 公开成员
  2. 保护成员
  3. 私有 SerializeField 字段
  4. 私有成员
  5. 私有用户事件
  6. 私有 Unity 事件

最后按成员类型排序

  1. 数据结构定义
  2. 构造函数
  3. 字段
  4. 属性
  5. 函数

代码设计规范

  • 字段永远是私有的,除了只读字段。
  • 用到多个 if 时,尽可能采用级联而非嵌套。
  • “!bool”仅用于取反操作,作为逻辑判断时应用“bool == false”。
  • 当代码中用到 switch 或 if,但无法确定最大数量时,应改用继承重写,委托等方式来替代。
  • Start 之前完成所有初始化工作,在 Awake 和 Start 期间可以修改参数,按情况配备初始化函数。
  • 尽可能利用序列化引用物体而非运行时绑定,从而使引用关系在面板可见。

模糊要求

  • 函数内容过长时应改为拆成多个局部方法再挨个调用的方式实现。
  • 代码间的关系应该层级分明,形成树形结构,不要出现越级操作。
  • 出现复制粘贴的编码方式时,应考虑封装相关代码避免复制粘贴。

命名规范

需要限定命名的原因

  • 统一风格,美观。
  • 便于区分类型和作用。
  • 避免重名。

若没有上述十足的理由,不应强制实施命名规范,否则会增加工作负担。

风格限制

  • 使用驼峰命名法
  • 名字要容易理解
  • 倒序域名化命名

名称怕短不怕长,可以结合上下文简化名称,但一定要能让别人理解意思。比如对于采用驼峰命名法的名称在其含有的单词间加入空格,放入翻译软件应能正确获取到对应中文名。

名称结构要层次化,并按从大到小的顺序,便于分类和查找。如 DbTableServer,Db 说明是数据库相关功能,Table 表明是针对数据库中的表功能,Server 表示是一个实例类。

类型限制

  • 私有成员首字母小写,其他成员首字母大写。
类型 描述 示例
接口 对应类名添加I前缀 IInterface
泛型 对应类型添加T前缀 TGeneric
函数 动作,主动语态。 OpenDoor
事件 动作,被动语态,触发在对应函数开头或期间添加ing后缀,触发在函数结束添加ed后缀。 DoorOpeningDoorOpened
事件函数 动作,被动语态,添加on前缀。 OnDoorOpen
字段 名词,被动语态。 isDoorOpening
属性 与对应字段同名,大写开头。 IsDoorOpening

前后缀限制

  • 若未指明,则不要私自添加前后缀。
  • 部分类型要添加特殊的前后缀。
后缀 描述
s,es 容器
UI 用户界面相关
Prefab 用于实例化的预制体

【Unity】个人编码规范
https://bdffzi-blog.pages.dev/posts/3651714765.html
作者
BDFFZI
发布于
2024年2月3日
许可协议