IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> UE4-反射和垃圾回收、将c++类成员显示到蓝图 -> 正文阅读

[C++知识库]UE4-反射和垃圾回收、将c++类成员显示到蓝图

一、反射系统相关:

C++中并没有内置的反射系统,UE4有专属的反射系统负责采集数据。该系统负责合并C++数据与UE4系统数据,并在蓝图中显示。同时也负责垃圾回收。

垃圾回收相关:

与项目相关的程序管理器内存会自动删除无需再使用到的对象,这样便释放了内存。在UE4中的垃圾回收系统中 追踪着变量引用给定对象的数量,只要对象不再被变量引用,对象就会被删除。

类、变量、函数参与垃圾回收相关:

1.类参与UE4的垃圾回收系统,需要使用特定宏指令标记(宏指令是被赋予名称的特定代码片段)

解释:UE4中的UHT(虚幻头工具)是在项目编译时收集带有特定宏指令类信息的程序,当识别到特定宏指令时,会为类生成额外代码(可理解成 生成的额外代码将宏指令替换),反射系统就会工作,收集此类中的信息。

2.UCLASS宏指令位于所有类修饰的顶部,使用此宏指令来标记类就会被Garbage Collection系统回收垃圾。

3.变量必须使用UPROPERTY宏指令标记,才能参与反射系统。

4.函数必须用UFUNCTION宏指令标记,才能参与反射系统。

5.重点:需要将include写到文件顶部,名称为?.generated.h文件的类,

.generated.h文件的类包含了所有从类中为反射系统收集数据相关的代码。有了它可以进行反射和采集数据,可以命令垃圾回收,并将变量和函数反射至虚幻编辑器。

注意:只是反射至虚幻编辑器,并不能直接在蓝图中访问,需要进行额外的参数设置。

二、将类成员显示到蓝图:

1.创建基于此类的蓝图类。

注意:如果类名上方的宏指令的括号内没有关键词,在UE场景中创建基于此类的蓝图类是灰色的。所以想让类中的成员显示到蓝图,需要在宏指令的括号中加入关键词,关键词不能输入错误,否则无法识别。

UCLASS(Blueprintable)

保存后,在vs界面选择生成,完成编译。回到UE4,创建基于类的蓝图类,重命名为MyObject_BP并选择路径生成。

2.在c++类中声明的变量及函数在上方的宏指令中加入关键词,并在.cpp中进行变量和函数定义。完成后vs中生成,编译完成后到MyObject_BP蓝图中进行访问

变量:UPROPERTY(BlueprintReadWrite)

注意:想使用BlueprintReadWrite,就必须放在public下面。

函数:UFUNCTION(BlueprintCallable)

?

?3.在MyObject_BP访问变量及函数

?

补充扩展:对变量及函数在蓝图中进行分类。在宏指令括号内,输入第二个分类参数并起名称,在蓝图中就会将变量和函数放置在对应的分类下。

变量:UPROPERTY(BlueprintReadWrite,Category="MyVariables")

函数:UFUNCTION(BlueprintCallable,Category="MyFunctions")

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 14:54:29  更:2021-08-20 14:55:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:42:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码