Unity3D代码规范
Unity3D代码规范
命名规则
排版约定
- 字段:私有字段、受保护字段(尽量不要使用公有字段)
- 属性:私有属性、受保护属性、公有属性
- 事件:私有事件、受保护事件、公有事件
- 构造函数:参数数量最少的构造函数,参数数量中等的构造函数,参数数量最多的构造函数
- 方法:重载方法的排列顺序与构造函数相同,从参数数量最少往下至参数最多。方法按照功能分块即可,不需要按照私有、保护、公有分布。
命名的基本约定
缩写
尽量不要缩写名字,名字长没关系,尽可能描述清楚。
命名方法
命名采用驼峰规则,不采用下划线分割规则。
- Pascal命名法:每个单词首字母大写。
- Camel命名法:第一个单词首字母小写,其余单词首字母大写。
类型前缀
- 不管是类型还是变量等,都不要加类型前缀。比如CButton,直接写成Button。
- 变量名前一般不用加类型前缀。比如int nNum,直接写成int num即可。
文件夹命名
Unity工程中所有C#代码的文件夹命名,都必须使用英文全拼,遵循Pascal大小写规范。
文件命名
所有的C#源代码文件,命名都使用英文全拼,都必须遵循Pascal大小写规范。
命名空间
- 使用Pascal命名法
- 命名空间采用XXGame开头,比如XXGameEngine。
类
- 使用Pascal命名法。
- 类名要用名词。模板类开头用T。
接口
- 使用Pascal命名法。
- 接口开头用I。接口名要用名词。
枚举
- 枚举类型和枚举常量都使用Pascal命名法。
- 不需要在类型或者枚举常量的前后加上Enum前缀。
函数
- 使用Pascal命名法。
- 函数名最好用动词开头。
委托和事件
- 使用Pascal命名法。
- 使用动词短语命名。
属性
- 使用Pascal命名法。
特性(Attribute)
- 用名词或名词短语+Attribute方式命名特性,保证特性名清晰,尽量达到望文生义的境界。
- 采用Pascal方式命名,尽量少用或不用缩写,若使用了缩写一定要在注释中详细注明特性的用途。
变量
- 使用Camel命名法。
- 类非静态成员变量用m开头。
- 类的静态成员变量用s开头。函数内的静态变量需用s开头。
- 类的公有成员变量大写开头,不需要加前缀,尽量用属性代替公有变量。
常量
- 所有单词大写,多个单词之间用下划线隔开,比如public const int PAGE_INDEX = 6;
代码缩进
- 大括号各占一行对齐,而不是将左大括号放在行尾。
- 代码缩进使用Tab键实现,最好不要使用空格,为保证在不同机器上使代码缩进保持一致,设置Tab键宽度为4个字符。
- if、while、for等关键词后应有一个空格[eg. “if (a == b)”]
- 运算符前后应各有一个空格[eg. “a = b + c;”]
长度
行长度
每一行代码的行长度,建议 不要超过110个字符。如果超过这个长度,可以按照以下规则换行:
- 在逗号后换行。
- 在操作符前换行。
- 第一条优先于第二条。
函数长度
建议单个函数长度不要超过80行。越简短越好。
注释
- 尽量少写注释,做到代码自解释。
- 尽量用最简单直接的代码实现功能,减少冗余的代码。
- 逻辑复杂的地方加上关键注释即可。
例子
1
|
namespace YZGameEngine
|
防御性编程
安全编程
- 对象使用前必须判空引用,尤其函数参数或者函数调用或者集合返回的对象,使用前必须判空。
- 尽可能避免使用异常,通过其它方式避免出现错误或者异常,比如代码逻辑保证或者返回值判断。
性能编程
预计算
- UI控件必须在初始化的时候通过find获得,而不是在使用的时候频繁获得。
- 不要频繁使用GetComponent获得组件,可以在初始化时候缓存引用。
经验
- 尽可能不要使用foreach。
- 避免重复使用string,因为C#中的string是定长并分配在堆上的,每次赋值都会重新创建一个新的string,可以使用StringBuilder来构建字符串。
相关文章
- 本文链接: http://xiaopengcheng.top/2018/12/19/Unity3D代码规范/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
浙公网安备 33010602011771号