UE4 命名规范

 参考:

https://docs.unrealengine.com/4.26/zh-CN/ProductionPipelines/DevelopmentSetup/CodingStandard/

命名规范

  • 所有代码和注释都应采用美式标准英语的拼写和语法。

  • 命名(如类型或变量)中的每个单词需大写首字母,单词间通常无下划线。例如:Health 和 UPrimitiveComponent,而非 lastMouseCoordinates 或 delta_coordinates

  • 类型名前缀需使用额外的大写字母,用于区分其和变量命名。例如:FSkin 为类型名,而 Skin 则是 FSkin 的实例。

    • 模板类的前缀为T。

    • 继承自 UObject 的类前缀为U。

    • 继承自 AActor 的类前缀为A。

    • 继承自 SWidget 的类前缀为S。

    • 抽象界面类的前缀为I。(注释:接口类)

    • 列举的前缀为E。(注释:枚举)

    • 布尔变量必须以b为前缀(例如 bPendingDestruction 或 bHasFadedIn)。

    • 其他多数类均以F为前缀(注释:原生C++类,结构体等),而部分子系统则以其他字母为前缀。

    • Typedefs应以任何与其类型相符的字母为前缀:若为结构体的Typedefs,则使用F;若为 Uobject 的Typedefs,则使用U,以此类推。

      • 特别模板实例化的Typedef不再是模板,并应加上相应前缀,例如:

        typedef TArray<FMytype> FArrayOfMyTypes;
    • C#中省略前缀。

    • 多数情况下,UnrealHeaderTool需要正确的前缀,因此添加前缀至关重要。

  • 类型和变量的命名为名词。

  • 方法名是动词,以描述方法的效果或未被方法影响的返回值。

变量、方法和类的命名应清楚、明了且进行描述。命名的范围越大,一个良好的描述性命名就越重要。避免过度缩写。

所有变量应逐个声明,以便对变量的含义提供注释。其同样被JavaDocs格式需要。变量前可使用多行或单行注释,空白行为分组变量可选使用。

所有返回布尔的函数应发起true/false的询问,如`IsVisible()或`ShouldClearBuffer()

程序(无返回值的函数)应在Object后使用强变化动词。一个例外是若方法的Object是其所在的Object;此时需以上下文来理解Object。避免以"Handle"和"Process"为开头;此类动词会引起歧义。

若函数参数通过引用传递,同时该值会写入函数,建议以"Out"做为函数参数命名的前缀(非必需)。此操作将明确表明传入该参数的值将被函数替换。

若In或Out参数同样为布尔,以b作为In/Out的前缀,如 bOutResult

返回值的函数应描述返回的值.命名应说明函数将返回的值。此规则对布尔函数极为重要。请参考以下两个范例方法:

// True的意义是什么?
bool CheckTea(FTea Tea);

// 命名明确说明茶是新鲜的
bool IsTeaFresh(FTea Tea);

范例

float TeaWeight;
int32 TeaCount;
bool bDoesTeaStink;
FName TeaName;
FString TeaFriendlyName;
UClass* TeaClass;
USoundCue* TeaSound;
UTexture* TeaTexture;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值