瞧,这就是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 ...
随机推荐
- mysql创建视图
CREATE ALGORI`sync_user`CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER V ...
- NOIP201402比例化简
比例化简 [问题描述]在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果.例如,对某一观点表示支持的有 1498 人,反对的有 902 人,那么赞同与反对的比例可以简单的记为1498:9 ...
- GitHub Desktop for Win 安装不上
采用了ClickOnce部署方式,网速不给力,安装过程经常断线,要是有离线安装包就好了.
- plsql 简单介绍
plsql的安装: 1. 安装plsql developer 2. 下载,解压instantclient到任意目录 3. 在instantclient解压目录下,新建NETWORK目录,在该目录下建A ...
- TI CC2541的LED控制
现在终于进入到蓝牙SPI的环节了, 下面还要研究I2C, 所以第一步, 先点灯, 就是GPIO控制吧. 参考一下LEd的初始化: void HalLedInit (void){#if (HAL_LED ...
- javaWeb 使用jsp标签进行防盗链
/** * 1.新建类继承SimpleTagSupport * 新建2个属性, 添加对应的set方法 * 覆盖doTag()方法 */ import java.io.IOException; impo ...
- include指令
include:文件加载指令(用于在JSP文件中插入一个包含文本或代码的文件.把文件插入后和原来的JSP文件合并成一个新的JSP页面.) 语法格式:<%@ include file=" ...
- [转]jexus的安装
转自http://www.cnblogs.com/xiaodiejinghong/p/3720921.html 这是一个集成了 mono3.4.0 和 jexus5.6.0 的 jexus+mono ...
- anroid 查看签名信息的方法
1.把app改成压缩文件 2.解压以后找到META-INF\CERT.RSA 3.在CMD命令行里面输入: keytool -printcert -file E:\META-INF\CERT.RS ...
- ectouch第九讲 之ectouch 开始调试模式方法
ectouch 开始调试模式方法 原文: http://my.oschina.net/u/1036767/blog/407067页面报错对于发现编程过程中的问题很重要,所以在开发之前要先搞定它,免得出 ...