当前位置: 首页 > news >正文

UEC++Part4--UObject、UgameInstance、actor组件、静态加载

一、补充

1、ExposeOnSpawn

UPROPERTY(EditAnwhere,BlueprintReadWrite,meta=(ExposeOnSpawn="ExposeOnSpawnValue")) int32 health;

在生成这个对象时会有一个初始值可以设置,类似游戏创建角色时可以调整角色的捏脸数值

2、:public FTableRowBase

USTRUCT(BlueprintType) struct ALTestStruct :public FTableRowBase{}

可以使结构体能够被数据表格使用,当然,数据表格所有数据要与结构体一一对应。

二、UObject实例化

1、创建一个父类为Object的c++类

2、在.h文件里

#include"MyObject.h" UPROPERTY() UMyObject* ALObject;

3、.cpp

TSubClassOf<UMyObject> ALSubClass=UMyObject::StaticClass(); ALOject=NewUMyObject<UMyObject>(Getworld(),ALSubClass);

只有在需要让属性可以在编辑器中选择某个类(而不是实例)时,才用 TSubclassOf

三、UGameInstance

1、创建一个父类为GameInstance的c++类

2、.h

#include"MyGameInstance" UPORPERTY() UMyGameInstance* ALGI;

3、.cpp

ALGI=Cast<UMyGameInstance>(GetWorld()->GetFirstPlayerController()->GetGameInstance());

四、Actor

1、 组件

#include"Component/SceneComponent.h" #include"Component/StaticmeshComponent.h" #include"Component/BoxComponent.h" #include"Particles/ParticleSystemComponent.h" #include"Components/AudioComponent.h"

第一行是所有场景组件的头文件,第二行是静态网格体,第三行是box碰撞体积的,第四行是粒子特效,第五行是声音。

2、.h文件

UPROPERTY() USceneComponent* ALRoot; UPROPERTY() UStaticMeshComponent* ALMesh; UPROPERTY() UBoxComponent* ALBox; UPROPERTY() UParticleSystemComponent* ALParticle; UPROPERTY() UAudioComponent* ALAudio;

声明组件

3、.cpp文件

ALRoot = CreateDefaultSubobject<USceneComponent>(TEXT("ALRoot")); ALMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("ALMesh")); ALAudio = CreateDefaultSubobject<UAudioComponent>(TEXT("ALAudio")); ALBox = CreateDefaultSubobject<UBoxComponent>(TEXT("ALBox")); ALParticle = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("ALParticle")); RootComponent = ALRoot; ALMesh->SetupAttachment(ALRoot); ALAudio->SetupAttachment(ALRoot); ALBox->SetupAttachment(ALRoot); ALParticle->SetupAttachment(ALRoot);

CreateDefaultSubobject<?>(TEXT("name"))用于创建组件

RootComponent=?来设定根组件

x->SetupAttachment(y)将x组件插入根组件y里

注:上述代码要在构造函数当中写入

五、静态加载

1、静态加载资源

在UE里资源无法直接调用,必须加载后才能被Object设置。

static ConstructorHelpers::FObjectFinder<?>名字(TEXT(“文件索引”))

static ConstructorHelpers::FObjectFinder<UStaticMesh>MeshValue(TEXT("/Engine/BasicShapes/Cube.Cube"));

设置:

ALMesh->SetStaticMesh(MeshValue.Object);

其他组件同理

2、静态加载类

static ConstructorHelpers::FClassFinder<?>名字(TEXT(“文件索引”))

static ConstructorHelpers::FClassFinder<UParticleSystem> ParticleValue(TEXT("/Game/StarterContent/Particles/P_Fire.P_Fire_C"));
AMyActor = ActorValue.Class;

类似静态加载资源

注:静态加载必须写在构造函数里。

六、动态加载

1、动态加载资源

UStaticMesh* ALMesh = LoadObject<UStaticMesh>(nullptr, TEXT("/Game/StarterContent/Shapes/Shape_Cube.Shape_Cube")); ALMesh->SetStaticMesh(ValueMesh);

加载资源时与静态不同,设置时是一样的。

2、动态加载类

UClass* ValueClass = LoadClass<AAL_Actor>(nullptr, TEXT("/Game/Blueprints/BP_AL_Actor.BP_AL_Actor_C")); AActor* ValueActor = GetWorld()->SpawnActor<AAL_Actor>(ValueClass, FTransform::Identity);

注:动态加载可以不用写在构造函数内部

http://www.jsqmd.com/news/492852/

相关文章:

  • 探索声子晶体线缺陷在压电能量收集中的奇妙世界
  • Kmeans算法、最佳聚类数的确定及散点图
  • 9元搞定!阿里云OSS+HTML搭建个人静态网站全流程(含域名备案避坑指南)
  • 咱们今天来盘一盘三相级联H桥的载波移相仿真。直接上硬菜,先看看A相三个H桥怎么玩载波错位。每个H桥的载波相位差120度,这招能把输出波形的纹波压得死死的
  • 信号与系统分析2026(春季)作业参考答案 - 第八次作业
  • 高压下的自我怀疑:当“我的实力配不上经历”成为内心独白,我们该如何理性应对与战略抉择?
  • GO学习日志07
  • 永磁同步电机FOC矢量控制仿真探索:从无感到闭环启动
  • 《QGIS快速入门与应用基础》221:项目面板:布局元素管理
  • deer-flow2本地启动(无make无nginx启动)
  • 滑模控制:解锁复杂系统控制的密码
  • SWD/JTAG Communication Failure的解决方法
  • MATLAB 分步傅里叶法仿真光纤激光器锁模脉冲产生:攻克脉冲漂移难题
  • 地下排水管道缺陷数据集 水下管道缺陷识别 智能识别之管道缺陷识别 管道油污碎屑 结垢沉积物识别 根系侵入数据集 表面损伤、破裂的管道、破裂图像数据集-目标检测图像数据集第10112期
  • YOLO系列算法改进 | 主干改进篇 | 替换MobileViGv2可缩放图卷积网络 | 助力模型复杂场景下精细区分目标和理解空间关系 | CVPR 2024
  • Prescan与Simulink联合仿真AEB模型:实现自动避撞停车
  • 泊车路径规划:几何方法实现的魅力
  • Deeplab - v3与ISIC皮肤病分割数据集实战
  • COMSOL:木材吸水(毛细效应)模型介绍
  • Android 硬件测试全流程方法论 —— 从性能、功耗到稳定性(测试工程师必看)
  • 多语言编程:Yi-Coder-1.5B支持52种语言实战演示
  • 探索一维光子晶体超窄带滤波器:从光学仿真到Matlab实现
  • 【RAG】【Data-Processor】【node_parsers04】SlideNodeParser文档解析示例
  • 挑选AI外包团队的“五看一评”标准,帮你避开90%的坑
  • 【RAG】【Data-Processor】【node_parsers05】TopicNodeParser主题解析示例
  • USB 5V电表设计:基于N32G430与INA199的嵌入式电源监测方案
  • AI投资回报率的“三维度”评估法:不只算钱,更要算清这些隐性价值
  • 融合正余弦和柯西变异的麻雀搜索算法优化CNN - BiLSTM
  • 机器视觉学习总结
  • ENSP模拟验证VLAN不同端口类型对数据帧的收发情况