【Unity】个人编码规范
【Unity】个人编码规范
文件结构规范
先确保动静态分离
当一个类存在静态和非静态两种成员时,需要利用 partial 将类分成两部分,分别存放静态与非静态成员。
再按访问修饰符排序
- 公开成员
- 保护成员
- 私有 SerializeField 字段
- 私有成员
- 私有用户事件
- 私有 Unity 事件
最后按成员类型排序
- 数据结构定义
- 构造函数
- 字段
- 属性
- 函数
代码设计规范
- 字段永远是私有的,除了只读字段。
- 用到多个 if 时,尽可能采用级联而非嵌套。
- “!bool”仅用于取反操作,作为逻辑判断时应用“bool == false”。
- 当代码中用到 switch 或 if,但无法确定最大数量时,应改用继承重写,委托等方式来替代。
- Start 之前完成所有初始化工作,在 Awake 和 Start 期间可以修改参数,按情况配备初始化函数。
- 尽可能利用序列化引用物体而非运行时绑定,从而使引用关系在面板可见。
模糊要求
- 函数内容过长时应改为拆成多个局部方法再挨个调用的方式实现。
- 代码间的关系应该层级分明,形成树形结构,不要出现越级操作。
- 出现复制粘贴的编码方式时,应考虑封装相关代码避免复制粘贴。
命名规范
需要限定命名的原因
- 统一风格,美观。
- 便于区分类型和作用。
- 避免重名。
若没有上述十足的理由,不应强制实施命名规范,否则会增加工作负担。
风格限制
- 使用驼峰命名法
- 名字要容易理解
- 倒序域名化命名
名称怕短不怕长,可以结合上下文简化名称,但一定要能让别人理解意思。比如对于采用驼峰命名法的名称在其含有的单词间加入空格,放入翻译软件应能正确获取到对应中文名。
名称结构要层次化,并按从大到小的顺序,便于分类和查找。如 DbTableServer,Db 说明是数据库相关功能,Table 表明是针对数据库中的表功能,Server 表示是一个实例类。
类型限制
- 私有成员首字母小写,其他成员首字母大写。
类型 | 描述 | 示例 |
---|---|---|
接口 | 对应类名添加I 前缀 |
IInterface |
泛型 | 对应类型添加T 前缀 |
TGeneric |
函数 | 动作,主动语态。 | OpenDoor |
事件 | 动作,被动语态,触发在对应函数开头或期间添加ing 后缀,触发在函数结束添加ed 后缀。 |
DoorOpening 、DoorOpened |
事件函数 | 动作,被动语态,添加on 前缀。 |
OnDoorOpen |
字段 | 名词,被动语态。 | isDoorOpening |
属性 | 与对应字段同名,大写开头。 | IsDoorOpening |
前后缀限制
- 若未指明,则不要私自添加前后缀。
- 部分类型要添加特殊的前后缀。
后缀 | 描述 |
---|---|
s,es | 容器 |
UI | 用户界面相关 |
Prefab | 用于实例化的预制体 |
【Unity】个人编码规范
https://bdffzi-blog.pages.dev/posts/3651714765.html