虚幻引擎4-UE4 语言基础之代码规范

要编写出优雅的Unreal Engine代码,需要了解所在sdk环境的编码习惯和约定,这样才能编写出和上层sdk一致的代码风格。

命名部分

函数名,变量名,类型名,首字母大写。eg:UPrimitiveComponent

类型名有一个额外的大写字母前缀。

模板类以T为前缀。eg:TArray

继承UObject的类以U为前缀。eg:UActorComponent

继承AAtor的类以A为前缀。eg:AMyActor

继承SWidget 的类以S为前缀。eg:SPage

抽象接口类以 I为前缀。eg:IGetName

大部分其他类都以F为前缀。eg:FString

3.变量如果是bool,则必须以b开头。eg:bFinished

4.返回bool的函数,必须是Is开头或Should开头。eg:IsVisable(),ShouldClearData()

5.函数的参数,如果需要修改,必须以Out开头。eg:void GetRoomInfo(FRoomInfo& OutRoomInfo);

6.类型名要与类型修饰符在一起。eg: AActor* player;

可移植数据类型部分

bool代表布尔值 (永远不要假设布尔值的大小) 。BOOL 将不会进行编译。

TCHAR 代表字符型(永远不要假设TCHAR的大小)。

uint8代表无符号字节(占1个字节)。

int8代表有符号的字节(占1个字节)。

uint16 代表无符号"短整型" (占2 个字节)。

int16代表有符号"短整型" (占2 个字节)。

uint32 代表无符号整型(占4字节)。

int32代表带符号整型(占4字节)。

uint64代表无符号"四字" (8个字节)。

int64 代表有符号"四字"(8个字节)。

float代表单精度浮点型 (占4 个字节)。

double代表双精度浮点型 (占8 个字节)。

PTRINT代表可以存放一个指针的整型 (永远不要假设PTRINT的大小)。

请不要在可移植代码中使用C++整型,因为需要根据编译器决定这种数据类型的大小。

C++11可以使用的特性

可变参数宏

auto

范围for

lambda

override final

其余禁止使用

C++ 枚举值(命名空间作用域)

在虚幻引擎的代码中我们一般会在枚举类型前面加上 "E"字符作为前缀。

我们要求所有枚举类型都使用命名空间来 (或空的结构体) 确定作用域。这样做的原因是在C++中枚举值的作用域和枚举类型本身的作用域一样。这样可能导致命名冲突,使得程序员必须创建奇怪的名称或者给枚举值加上前缀使它们的值保持唯一性。相反,我们通常会使用命名空间来规定新的枚举类型的作用范围。命名空间内的实际枚举类型的名称应该总是声明为 "Type" 。

通过命名空间确定枚举类型作用于的示例:

[代码]:

注意对于局部声明的枚举类型来说,您不能使用命名空间来规定作用范围。在这些情况中,我们选择声明一个没有成员变量的局部结构体,该结构体内仅有一个局部的枚举类型,使用该结构体来规定作用范围。

[代码]:

依赖部分

使用#pragma once来防止多次包含

字符串

使用unreal自带的FString,FText,TCHAR

容器

使用unreal自带的容器TArray,TMap,TSet

智能指针

使用unreal自带的智能指针TSharedPtr,TSharedRef,TWeakPtr

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,766评论 1 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,570评论 18 139
  • 好吧换阅读 93评论 1 0
  • 朝望 清明节回家,最后一天是清明节日,最忙,又要完成所有先辈扫墓拜山任务,还要赶紧回程,第二天要上班,所以,...
    潮望阅读 492评论 1 4
  • 一次商业拜访就像冲锋一个未知的阵地,不注意细节,结果往往是铩羽而归。 1. 两个人去正好 商业拜访时,人员的数量要...
    JoeChoi阅读 257评论 0 1