| |
|
开发:
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语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |