瞧,这就是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 ...
随机推荐
- jQuery讲解
在讲解jQuery时,要和JavaScript进行对比的讲解,易于理解 JavaScript部分 <title>jquery讲解使用</title> <script sr ...
- yii Html中的a标签使用
1.use yii\helpers\Html; <?php echo Html::a('编辑',['edit','id'=>$info['goods_id']])?> 2.有确认框的 ...
- 新发现了一个编辑器HBuilder,感觉蛮好的,关键是国产软件。
http://www.dcloud.io/
- SVN使用(二)
TortoiseSVN是windows平台下Subversion的免费开源客户端. 一般我们都是先讲讲服务器的配置,然后再讲客户端的使用,但是在TortoiseSVN上,却可以反过来.因为,如果你的要 ...
- JSP01
<%@page pageEncoding="UTF-8" //page:设置此文件的编码 contentType="text/html;charset=utf ...
- Android NDK 开发(一)--环境搭建【转】
转载请注明出处:http://blog.csdn.net/allen315410/article/details/41800955 Android下的NDK开发是Android开发中不可或缺的一部分, ...
- 人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍
人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍 工业机器人,家用机器人这些只是人工智能的一个细分应用而已.图像识别,语音识别,推荐算法,NL ...
- PHP json_decode object时报错Cannot use object of type stdClass as array
PHP json_decode object时报错Cannot use object of type stdClass as array php再调用json_decode从字符串对象生成json对象 ...
- jsp数据库连接出现乱码
只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上 useUnicode=true&characterEncoding=GBK 就OK了. 之前所写,迁移至此 原文链接:ht ...
- 为什么anylase和scenaio中的平均响应时间差别会这么大?
场景里的响应时间截图如下所示: 结果里的响应时间截图如下所示: