注释
规范:JavaDoc
参考:
https://docs.unrealengine.com/4.27/zh-CN/ProductionPipelines/DevelopmentSetup/CodingStandard/
https://www.jianshu.com/p/3c74c62fafae
(1) 多行注释:/* */ 或者 /** */
(2)参数:@Param
(3)返回值:@Return
(4)注意:@Note
(4.1)@See
(5)警告:@warning
注意:
(1)关键字大小写不敏感;
(2)注释内不能有空行;
编译时断言:
static_assert
覆盖与完成
override
final
auto
适用情况:
(1)匿名函数与变量绑定:需要将匿名函数与变量绑定时;因为代码无法表示匿名函数类型;
(2)复杂迭代器:迭代器遍历复杂集合,影响可读性时;
(3)不清晰模板类型:无法清楚识别表达式的模板代码中适用。
强类型化列举
(1)大小可任意:列举属性可为任何大小,而非仅为字节大小;
(2)ENUM_CLASS_FLAGS(自动定义所有按位运算符):标志的列举类可以利用 ENUM_CLASS_FLAGS(EnumType) 宏自动定义所有按位运算符:
enum class EFlags
{
None = 0x00,
Flag1 = 0x01,
Flag2 = 0x02,
Flag3 = 0x04
}
ENUM_CLASS_FLAGS(EFlags)
(2.1)空枚举(用于比较判断):所有标签列举应含有名为 空 的列举器,并将其设为0以进行对比(语言限制)
if ((Flags & EFlags::Flag1) != EFlags::None)
命名空间
(1)UnrealHeaderTool不支持命名空间,所以命名空间不应在定义 UCLASSes、`USTRUCTs`等时使用。
(2)宏无法存在于命名空间中,但应使用 UE_ 作为前缀,例如 UE_LOG。
物理依赖性
引用直接定义头文件;
API设计指导方针
(1)参数:枚举优于bool;(强类型化列举);
退出游戏
UKismetSystemLibrary::QuitGame(this, nullptr, EQuitPreference::Quit);
stat命令说明:
Stat Commands
https://docs.unrealengine.com/latest/INT/Engine/Performance/StatCommands/