瞧,这就是UE4 C++
1.虚幻中的类前缀你会见到U,A,F,以下就是很好的罗列其中的意义
- U: UObject继承过来的,例如UTexture
- A: AActor继承过来的,例如AGameMode
- F: 其他的类和结构,例如FName, FVector
- T:模板,例如TArray,TMap,TQueue
- I: 接口类,ITransaction
- E:枚举, ESelectionMode
- B: Boolean, bEnabled
2.区分大小写!
用宏定义来包裹C++代码
UCLASS 来包裹类
USTRUCT 包裹结构
UFUNCTION 包裹功能
UPROPERTY 包裹属性
这是例子
USTRUCT()
struct FVector2D
{
UPROPERTY()
float X;
UPROPERTY()
float Y;
UFUNCTION()
float GetLength() const;
};
3.虚幻主义者
UE4代码中使用自己的基础类型,不适用C++中的(char,short,int,long等)
①取而代之的是:int32,uint32,uint64,TCHAR,ANSICHAR等
数值类型在NumericLimits.h中声明,可以详细阅读查询
②一般的结构数据类型有
FBox,FColor,FGuid,FVariant,FVector,TBigInt,TRange
③容器
TArray,TSparseArray-动态数组
TLinkedList,TDoubleLinkedList
TMap-键值对哈希表
TQueue-队列
TSet-非有序集
④代理:这一部分中文更加拗口没有翻译的意义,实际使用的时候我会再解释
Unicast and multicast delegates
thread-safe variants
⑤智能指针
TSharedPtr,TSharedRef-一般传统的C++对象
TWeakPtr-一般传统的C++对象
TWeakObjPtr-UObject
TAutoPtr,TScopedPtr
TUniquePtr
原谅我偷懒直接复制,用了才知道怎么回事
Similar to boost:: & std:: implementations
Also thread-safe variants
⑥String 类型
FString- 通常的String
FText- 本地化,在Slate UI中常使用
FName-在UObject中常使用的,String哈希.FName是大小写敏感的
⑦String文字
TEXT()- 创建一个通用的String类型,TEXT("Hello");
LOCTEXT()-创建一个本地化文字,LOCTEXT("Namespace","Name","Hello");
NSLOCTEXT()-在一个域名空间内的本地化,NSLOCTEXT("Name","Hello");
瞧,这就是UE4 C++的更多相关文章
- UE4物理模块(一)---概述与可视化调试
UE4.21前的版本采用的是NVIDIA的PhysX做为其默认的物理引擎,用于计算3D世界的碰撞查询与物理模拟.自4.21版本开始改物理调用接口,但这并不是闲来重构代码,果然在2019GDC大会上放出 ...
- 深入剖析GPU Early Z优化
最近在公司群里同事发了一个UE4关于Mask材质的优化,比如在场景中有大面积的草和树的时候,可以在很大程度上提高效率.这其中的原理就是利用了GPU的特性Early Z,但是它的做法跟我最开始的理解有些 ...
- UE4新手引导之下载和安装虚幻4游戏引擎
1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...
- ue4 模块的构建和加载
ue4的代码是模块的形式来组织 在源码层面,一个包含*.build.cs的目录就是一个模块 这个目录里的文件在编译后都会被链接在一起,比如一个静态库lib,或者一个动态库dll. 不管是哪种形式,都需 ...
- UE4简单AI
首先做个小小的声明把,由于俺之前也没接触过AI ,所以有一些专业的词汇可能翻译存在各种问题,如果你发现的话,还是希望能够提出来哦,我们一起进步. 记住配合视频食用更佳哦~ 视频连接:http://ww ...
- Unreal Engine 4(虚幻UE4) GameplayAbilities插件入门教程(一)
本文系笔者的实习生分享会内容预备兼GameplayAbilities的初学者教程. 本文适合已有四十天UE4开发经验的初学者. 参考资料:https://wiki.unrealengine.com/G ...
- UE4联机多人游戏基本设置
UE4自带网络联机功能,但是似乎只有蓝图接口,而真正写功能的时候不能用C++,让人感觉相当诡异 还是作一个简单记录 1.建一个第三人称模板,为什么会用他呢,因为它自带模板的很多组件,直接支持联机功能, ...
- [UE4]Canvas Panel
一.Canvas Panel:画布.Canvas Panel中内的元素可以任何摆放位置.Canvas Panel是UserWiget默认的根节点容器,可以把跟节点删除替换生成任何的UI元素. 二.选择 ...
- 《Exploring in UE4》多线程机制详解[原理分析]
转自:https://zhuanlan.zhihu.com/c_164452593 目录一.概述二."标准"多线程三.AsyncTask系统3.1 FQueuedThreadPoo ...
随机推荐
- ahb2apb和apb2apb async bridge
AHB 3.0目前不支持security world. AHB到APB的async bridge主要包括三个部分: 1)AHB domain 1)产生信号hactive = HSEL & HT ...
- js同步访问后台资源
$.ajax( { type : 'post', url : url, data : data, async : false,//false代表只有在等待ajax执行完毕后才执行window. ...
- [tp3.2.1]大D构建模型
使用大(写字母)D方法: 如果,在默认到Home模块下面找不到UserModel模块,那么就会到Common模块下去找. 而如果此时在Common模块下还是找不到UserModel,那就会调用Mode ...
- ASP.NET MVC的TempData(转载)
本文章基于ASP.NET MVC Preview5. ASP.NET MVC的TempData用于传输一些临时的数据,例如在各个控制器Action间传递临时的数据或者给View传递一些临时的数据,相信 ...
- struts2 笔记02 文件上传、文件下载、类型转换器、国际化的支持
Struts2的上传 1. Struts2默认采用了apache commons-fileupload 2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload ...
- Perl 和 Python 的比较 【转】
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4662991&uid=608135 作为万年Perl 党表示最近开 ...
- <mvc:annotation-driven />与<context:annotation-config />
Spring家族的配置中这两个配置的意义,说具体点其实根据标签的shecma就能看出来,mvc,主要就是为了Spring MVC来用的,提供Controller请求转发,json自动转换等功能,而co ...
- maven打包异常
maven打包异常,如图: 问题原因:服务器密码错了.
- Linux CentOS 6.5 yum安装MongoDB的操作
安装MongoDB的方法有很多种,可以源代码安装,在CentOS也可以用yum源安装的方法.由于MongoDB更新得比较快,我比较喜欢用yum源安装的方法.64位CentOS下的安装步骤如下: 1.准 ...
- Asp.net Vnext api CORS( 跨域)
概述 跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源.而这种访问是被同源策略所禁止的.CORS系统定义了一种浏览器和服务器交互的方式 ...