**命名(如类型或变量)中的每个单词需大写首字母,单词间通常无下划线。**例如:Health 和 UPrimitiveComponent,而非 lastMouseCoordinates 或 delta_coordinates。
类型名前缀需使用额外的大写字母,用于区分其和变量命名。例如:FSkin 为类型名,而 Skin 则是 FSkin 的实例。 * 模板类的前缀为T。
继承自 UObject 的类前缀为U。
继承自 AActor 的类前缀为A。
继承自 SWidget 的类前缀为S。
抽象界面类的前缀为I。
列举的前缀为E。
布尔变量必须以b为前缀(例如 bPendingDestruction 或 bHasFadedIn)。
其他多数类均以F为前缀,而部分子系统则以其他字母为前缀。
Typedefs应以任何与其类型相符的字母为前缀:若为结构体的Typedefs,则使用F;若为 Uobject 的Typedefs,则使用U,以此类推。 * 特别模板实例化的Typedef不再是模板,并应加上相应前缀,例如:
typedef TArray<FMytype> FArrayOfMyTypes;
C#中省略前缀。
多数情况下,UnrealHeaderTool需要正确的前缀,因此添加前缀至关重要。
类型和变量的命名为名词。
方法名是动词,以描述方法的效果或未被方法影响的返回值。
变量、方法和类的命名应清楚、明了且进行描述。命名的范围越大,一个良好的描述性命名就越重要。避免过度缩写。
所有变量应逐个声明,以便对变量的含义提供注释。其同样被JavaDocs格式需要。变量前可使用多行或单行注释,空白行为分组变量可选使用。
所有返回布尔的函数应发起true/false的询问,如IsVisible()或
ShouldClearBuffer()。
程序(无返回值的函数)应在Object后使用强变化动词。一个例外是若方法的Object是其所在的Object;此时需以上下文来理解Object。避免以"Handle"和"Process"为开头;此类动词会引起歧义。