UE 语言基础之代码规范
要编写出优雅的Unreal Engine代码,需要了解所在sdk环境的编码习惯和约定,这样才能编写出和上层sdk一致的代码风格。
0|1命名部分
- 函数名,变量名,类型名,首字母大写。eg:UPrimitiveComponent
2。 类型名有一个额外的大写字母前缀。
模板类以T为前缀。eg:TArray
继承UObject的类以U为前缀。eg:UActorComponent
继承AAtor的类以A为前缀。eg:AMyActor
继承SWidget 的类以S为前缀。eg:SPage
抽象接口类以 I为前缀。eg:IGetName
大部分其他类都以F为前缀。eg:FString
-
变量如果是bool,则必须以b开头。eg:bFinished
-
返回bool的函数,必须是Is开头或Should开头。eg:IsVisable(),ShouldClearData()
-
函数的参数,如果需要修改,必须以Out开头。eg:void GetRoomInfo(FRoomInfo& OutRoomInfo);
-
类型名要与类型修饰符在一起。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++整型,因为需要根据编译器决定这种数据类型的大小。
1|0C++11可以使用的特性
1|1可变参数宏
auto
范围for
lambda
override final
其余禁止使用
C++ 枚举值(命名空间作用域)
在虚幻引擎的代码中我们一般会在枚举类型前面加上 "E"字符作为前缀。
我们要求所有枚举类型都使用命名空间来 (或空的结构体) 确定作用域。这样做的原因是在C++中枚举值的作用域和枚举类型本身的作用域一样。这样可能导致命名冲突,使得程序员必须创建奇怪的名称或者给枚举值加上前缀使它们的值保持唯一性。相反,我们通常会使用命名空间来规定新的枚举类型的作用范围。命名空间内的实际枚举类型的名称应该总是声明为 "Type" 。
通过命名空间确定枚举类型作用于的示例:
注意对于局部声明的枚举类型来说,您不能使用命名空间来规定作用范围。在这些情况中,我们选择声明一个没有成员变量的局部结构体,该结构体内仅有一个局部的枚举类型,使用该结构体来规定作用范围。
1|2依赖部分
使用#pragma once来防止多次包含
1|3字符串
使用unreal自带的FString,FText,TCHAR
1|4容器
使用unreal自带的容器TArray,TMap,TSet
1|5智能指针
使用unreal自带的智能指针TSharedPtr,TSharedRef,TWeakPtr
__EOF__

本文链接:https://www.cnblogs.com/ezhar/p/14453380.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文来自博客园,作者:艾孜尔江,转载请注明原文链接:https://www.cnblogs.com/ezhar/p/14453380.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现