首页 > 其他分享 >UE5笔记:虚幻引擎反射系统和对象

UE5笔记:虚幻引擎反射系统和对象

时间:2024-08-14 15:06:06浏览次数:7  
标签:UObject 对象 笔记 UMyObject 引擎 Actor 虚幻 UE5

虚幻引擎反射系统

使用宏提供引擎和编辑器各种功能,封装你的类。使用虚幻时,可以使用标准的C++类,函数和变量
虚幻中对象的基类是UObject,UCALSS宏的作用是标记UObject的子类,以便UObject处理系统可以识别他们

UObject创建

1.不支持构造器参数。所有的C++ UObject都会在引擎启动的时候初始化,然后引擎会调用其默认构造器。如果没有默认的构造器,那么 UObject 将不会编译。
2.构造器应该轻量化,仅用于设置默认的数值和子对象,构造时不应该调用其它功能和函数。对于 Actor和Actor组件,初始化功能应该输入 BeginPlay() 方法。
3.永远都不应使用 new 运算符。所有的 UObjects 都由虚幻引擎管理内存和垃圾回收。如果通过 new 或者 delete 手动管理内存,可能会导致内存出错

UObjects提供的功能

垃圾回收 引用更新 反射 序列化默认属性变化自动更新 自动属性初始化 自动编辑器整合 运行时类型信息可用 网络复制

头文件格式

UObject 在源(.cpp)文件中的实现与其他 C++ 类相似,其在头(.h)文件中的定义必须遵守特定的基础结构,以便在虚幻引擎 4 中正常使用。
使用编辑器的"New C++ Class"命令是设置格式正确头文件的最简单方法。
UObject 派生类的基础头文件可能看起来与此相似,假定 UObject 派生物被称为 UMyObject,其创建时所在的项目被称为 MyProject:

pragma once
include 'Object.h'
include 'MyObject.generated.h'
UCLASS() //使引擎能识别UMyObject
class MYPROJECT_API UMyObject : public UObject //如果UMyObject类公开到其他模块,则需指定MYPROJECT_API
{
GENERATED_BODY()
//此宏不获取参数,但会对类进行设置,以支持引擎要求的基础结构。所有UCLASS和USTRUCT都有此要求
}

Ticking 代表虚幻引擎中对象的更新方式。所有Actors均可在每帧被 tick,便于您执行必要的更新计算或操作。

Actor 和 Actor组件在注册时会自动调用它们的 Tick 函数,然而,UObjects 不具有嵌入的更新能力。在必须的时候,可以使用 inherits 类说明符从 FTickableGameObject 继承即可添加此能力。
这样即可实现 Tick() 函数,引擎每帧都将调用此函数。

销毁对象

对象不被引用后,垃圾回收系统将自动进行对象销毁。
这意味着没有任何 UPROPERTY 指针、引擎容器、TStrongObjectPtr 或类实例会拥有任何对它的强引用。

弱指针

不会组织对象的销毁 如果引用对象被销毁,则弱指针也将自动清空。弱指针的操作意图是保存一个到达目标对象的指针,但不会控制该对象的生命周期。

标签:UObject,对象,笔记,UMyObject,引擎,Actor,虚幻,UE5
From: https://www.cnblogs.com/MikuMono/p/18359028

相关文章

  • 【开端】如何高效记录并整理编程学习笔记
    如何高效记录并整理编程学习笔记?在编程学习的海洋中,高效的笔记记录和整理方法就像一张珍贵的航海图,能够帮助我们在浩瀚的知识中找到方向。如何建立一个既能快速记录又易于回顾的笔记系统?如何在繁忙的学习中保持笔记的条理性?让我们一起探讨如何打造属于自己的编程学习“知识宝......
  • 字符串算法学习笔记
    注:码风较差,慎读1.hash算法相对于字符串,数字相对来说好处理一些,我们可以考虑把每一个字符串都对应一个数字,这样就可以非常简便地解决字符串的一些问题,而且效率还极高字符串哈希,就是一种可以理解为将字符串映射到一个整数的方法。比如BKDPHash是一种很好的哈希算法,假如字符串为a......
  • CrashCourse CS 速成课笔记
    1.计算机早期历史算盘>>步进计算器>>差分机>>分析机>>打孔卡片制表机CharlesBabbage,AdaLoyelace最早的计算设备是算盘。Computer从指代职业变成指代机器机器里有名的是:步进计算器,第一个可以做加减乘除的机器炮弹为了精准,要计算弹道,二战是查表来做。但每次......
  • 博弈论学习笔记
    nim游戏变种限制取m的nim游戏即巴什游戏+nim游戏,求出每堆数目\(a_imod(m+1)\)的异或和,如果为0,则先手必败,反之先手必胜.我们仍可从P,N来分析.假设目前为先手必败的局面,先手不管拿多少个,都会使得\(a_imod(m+1)\neq0\)(因为取的数目不能超过m;假设目前先手必胜的局面,只......
  • 基于flask+vue框架的某高校学生学习笔记共享平台的设计与实现[开题+论文+程序]-计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,高等教育领域正经历着前所未有的变革。随着知识量的急剧增长和学习方式的多样化,学生们面临着如何高效管理和利用学......
  • Java基础-学习笔记11
    11枚举、注解枚举枚举是一组常量的集合。可以这么理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。比如,Season类,只包含SPRING、SUMMER、AUTUMN、WINTER四个对象常量。两种实现方式(1)自定义类实现枚举     1)构造器私有化     2)本类内部创建一组对......
  • 结构开发笔记(三):solidworks软件(二):小试牛刀,绘制一个立方体
    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/141122350长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…硬件相关开发......
  • C#学习笔记——入门
    <divid="article_content"class="article_contentclearfix">    <linkrel="stylesheet"href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">    &l......
  • 会议活动拍摄人物技巧笔记
    1.签到特写镜头。2.每个在舞台上讲话的全景,半身,特写,全景要带上会议背景板主题等元素,注意表情,不要拍成表情包了。3.互动环节和颁奖环节,一定要拍下领导与员工互动的中景镜头。4.多个专注听讲的人特写镜头或者记笔记的镜头。5.合影,一定要记得全部人员要装进去,尽量把被摄者排列整......
  • 【笔记篇】Davinci Configurator SoAd模块
    目录1简介1.1架构概览2功能描述2.1特性2.2初始化2.3状态机2.4主函数2.5故障处理3集成4API描述5配置5.1Socket连接处理5.1.1Socket连接组5.1.2Socket连接建立5.1.2.1手动5.1.2.2自动5.1.2发送路径5.1.3接收路径5.1.......