UE5 C++(九)— 静态、动态加载类和资源

文章目录

  • 前提
  • 静态加载类和资源
    • 静态加载资源
    • 静态加载类
  • 动态加载类和资源
    • 动态资源
    • 动态加载类

前提

有必要说一下,静态这块内容加载时我用UE5.2版本出现调用静态资源不是显示问题,修改后容易崩。所以,这里不建议5.2版本,直接用5.3,就不会出现这个问题。

导入初学者资源包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

静态加载类和资源

静态加载资源

复制静态资源引用
在这里插入图片描述
/Script/Engine.StaticMesh’/Game/StarterContent/Shapes/Shape_Cone.Shape_Cone’

#pragma once#include "CoreMinimal.h"
// 引入组件
#include "Components/SceneComponent.h"
#include "Components/StaticMeshComponent.h"
#include "Components/BoxComponent.h"
#include "Components/AudioComponent.h"
#include "Particles/ParticleSystemComponent.h"
#include "GameFramework/Actor.h"
#include "MyCustomActor.generated.h"UCLASS()
class EXAMPLE_API AMyCustomActor : public AActor
{GENERATED_BODY()public:// Sets default values for this actor's propertiesAMyCustomActor();protected:// Called when the game starts or when spawnedvirtual void BeginPlay() override;public:// Called every framevirtual void Tick(float DeltaTime) override;// 自定义组件UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyScenet")USceneComponent *MySceneComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyScene")UStaticMeshComponent *MyMeshComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyScenet")UBoxComponent *MyBoxComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyScene")UAudioComponent *MyAudioComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyScene")UParticleSystemComponent *MyParticleSystemComponent;
};
#include "MyCustomActor.h"// Sets default values
AMyCustomActor::AMyCustomActor()
{// Set this actor to call Tick() every frame.  You can turn this off to improve performance if you don't need it.PrimaryActorTick.bCanEverTick = true;// 创建组件MySceneComponent = CreateDefaultSubobject<USceneComponent>(TEXT("CustomScene"));MyMeshComponent = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("CustomStaticMesh"));MyBoxComponent = CreateDefaultSubobject<UBoxComponent>(TEXT("CustomBox"));MyAudioComponent = CreateDefaultSubobject<UAudioComponent>(TEXT("CustomAudio"));MyParticleSystemComponent = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("CustomParticleSystem"));// 把组件添加到根组件RootComponent = MySceneComponent;MyMeshComponent->SetupAttachment(MySceneComponent);MyBoxComponent->SetupAttachment(MySceneComponent);MyAudioComponent->SetupAttachment(MyBoxComponent);MyParticleSystemComponent->SetupAttachment(MySceneComponent);// 静态加载资源// 静态Meshstatic ConstructorHelpers::FObjectFinder<UStaticMesh> TempStaticMesh(TEXT("/Script/Engine.StaticMesh'/Game/StarterContent/Shapes/Shape_Cone.Shape_Cone'"));MyMeshComponent->SetStaticMesh(TempStaticMesh.Object);// 粒子特效static ConstructorHelpers::FObjectFinder<UParticleSystem> TempParticleSystem(TEXT("/Script/Engine.ParticleSystem'/Game/StarterContent/Particles/P_Explosion.P_Explosion'"));MyParticleSystemComponent->SetTemplate(TempParticleSystem.Object);// 音频static ConstructorHelpers::FObjectFinder<USoundWave> TempSoundBase(TEXT("/Script/Engine.SoundWave'/Game/StarterContent/Audio/Explosion02.Explosion02'"));MyAudioComponent->SetSound(TempSoundBase.Object);
}// Called when the game starts or when spawned
void AMyCustomActor::BeginPlay()
{Super::BeginPlay();
}// Called every frame
void AMyCustomActor::Tick(float DeltaTime)
{Super::Tick(DeltaTime);
}

编译后,会显示引用上
在这里插入图片描述
然后想,创建蓝图类BP_MyCustomActor

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里,都显示引用上。

静态加载类

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyClasss")TSubclassOf<AActor> MyActorClass;

加载静态类时,在引用资源类的末尾需要加上 _C,否则编译时会报错

	// 静态加载类  加载静态类时,在引用资源类的末尾需要加上 _C,否则编译时会报错static ConstructorHelpers::FClassFinder<AActor> TempActorClass(TEXT("/Script/Engine.Blueprint'/Game/StarterContent/Blueprints/Blueprint_CeilingLight.Blueprint_CeilingLight_C'"));MyActorClass = TempActorClass.Class;UE_LOG(LogTemp, Warning, TEXT("MyActorClass is %s"), *MyActorClass->GetName());

编译后,创建蓝图,打开后打印日志
在这里插入图片描述

动态加载类和资源

动态资源

void AMyCustomActor::BeginPlay()
{Super::BeginPlay();// 动态加载资源UStaticMesh *TempStaticMesh = LoadObject<UStaticMesh>(nullptr, TEXT("/Script/Engine.StaticMesh'/Game/StarterContent/Shapes/Shape_NarrowCapsule.Shape_NarrowCapsule'"));if (TempStaticMesh){MyMeshComponent->SetStaticMesh(TempStaticMesh);}else{UE_LOG(LogTemp, Warning, TEXT("TempStaticMesh is null"));}
}

编译后,创建蓝图拖到场景中,点击运行
在这里插入图片描述

动态加载类

void AMyCustomActor::BeginPlay()
{// 动态加载类UClass *TempActorClass = LoadObject<UClass>(this, TEXT("/Script/Engine.Blueprint'/Game/StarterContent/Blueprints/Blueprint_WallSconce.Blueprint_WallSconce_C'"));if (TempActorClass){AActor *TempActor = GetWorld()->SpawnActor<AActor>(TempActorClass,FVector(0,0,0),FRotator(0,0,0));UE_LOG(LogTemp, Warning, TEXT("TempActorClass is %s"), *TempActorClass->GetName());}else{UE_LOG(LogTemp, Warning, TEXT("TempActorClass is null"));}
}

编译后,创建蓝图拖到场景中,点击运行
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/578528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python pandas 操作 excel 详解

文章目录 1 概述1.1 Series 和 DataFrame 2 常用操作2.1 创建 Excel&#xff1a;to_excel()2.2 读取 Excel&#xff1a;read_excel()2.2.1 header&#xff1a;标题的行索引2.2.2 index_col&#xff1a;索引列2.2.3 dtype&#xff1a;数据类型2.2.4 skiprows&#xff1a;跳过的行…

MySQL——表的内外连接

目录 一.内连接 二.外连接 1.左外连接 2.右外连接 一.内连接 表的连接分为内连和外连 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选&#xff0c;我们前面学习的查询都是内连接&#xff0c;也是在开发过程中使用的最多的连接查询。 语法&#xff1a; s…

OSG三维渲染引擎编程学习之一百:“第十一章:OSG粒子” 之 “11.1 粒子的主要模块”

目录 第十一章 OSG粒子 11.1 粒子的主要模块 (1)放射极(osgParticle::Emitter) (2)粒子系统(osgParticle::ParticleSystem

入侵检测(HCIP)

目录 一、渗透流程 二、入侵检测 1、入侵检测原理 2、入侵检测系统结构 3、入侵防御系统 三、恶意代码 1、恶意代码概念&#xff1a; 2、恶意代码命名&#xff1a; 3、恶意代码按传播方式分类&#xff1a; 4、恶意代码按照功能分类&#xff1a; 5、恶意代码传播途径…

uni-app page新建以及page外观配置

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

ArcGIS高程点生成等高线

基本步骤&#xff1a;数据清洗→创建TIN→TIN转栅格→等值线→平滑线。 1.&#xff08;重要&#xff09;数据清理&#xff1a;删除高程点中的高程异常值数据。 2.创建TIN:系统工具→3D Analyst Tools→数据管理→TIN→创建TIN&#xff08;可直接搜索工具TIN&#xff09;。 单击…

如何进行快照管理

目录 快照管理 手动创建快照 自动创建快照 快照管理 快照管理 传统的物理服务器&#xff0c;为了确保服务器中数据的安全&#xff0c;需要你自行定制备份策略&#xff0c;如果备份到服务器本地&#xff0c;如果存储损坏&#xff0c;备份会同正常数据一起丢失。也就是说需要…

正则表达式:过滤 S3 上以 _$folder$ 结尾的占位文件

当我们使用命令行批量从 S3 上拷贝文件或统计文件数量时&#xff0c;希望能排除掉 S3 上以 _$folder$ 结尾的占位文件&#xff0c;这个正则表达式应该怎么写呢&#xff1f; Shell 实现 以下是统计 S3 某个位置下的除 _$folder$ 结尾的文件的文件数量&#xff1a; aws s3 ls …

从零构建tomcat环境

一、官网构建 1.1 下载 一般来说对于开源软件都有自己的官方网站&#xff0c;并且会附上使用文档以及一些特性和二次构建的方法&#xff0c;那么我们首先的话需要从官网或者tomcat上下载到我们需要的源码包。下载地址&#xff1a;官网、Github。 这里需要声明一下&#xff…

计算机毕业设计------SSM水果蔬菜商城批发网站

项目介绍 本项目分为前后台&#xff0c;前台为普通用户登录&#xff0c;后台为管理员登录&#xff1b; 管理员角色包含以下功能&#xff1a; 管理员登录,管理员管理,网站用户管理,新闻公告管理,果蔬类型管理,城市信息管理,配货点管理,果蔬商品管理,果蔬订单管理,果蔬评价管理…

vivo手机怎样录屏?轻松录制精彩瞬间

“vivo手机怎样录屏呀&#xff1f;买了最新款的vivo手机&#xff0c;感觉功能挺齐全的&#xff0c;最近玩游戏的时候&#xff0c;突然想要录屏&#xff0c;但是怎么都找不到&#xff0c;就想问问大家&#xff0c;vivo手机录屏在哪里呀&#xff1f;” 智能手机已经成为我们生活…

声音的频率20~20K如何划分中低高频?

在音频领域&#xff0c;20 Hz到20 kHz的频率范围被通常划分为中低高频&#xff0c;划分的具体界限可以因应用、个人偏好或标准而有所不同。以下是一般性的划分&#xff1a; 低频&#xff08;Bass&#xff09;&#xff1a; 20 Hz到200 Hz 20 Hz到40 Hz&#xff1a;极低频&#x…

7.微服务设计原则

1.微服务演进策略 从单体应用向微服务演进策略: 绞杀者策略&#xff0c;修缮者策略的另起炉灶策略&#xff1b; 绞杀者策赂 绞杀者策略是一种逐步剥离业务能力&#xff0c;用微服务逐步替代原有单体应用的策略。它对单体应用进行领域建模&#xff0c;根据领域边界&#xff0…

【Java动态代理如何实现】

✅Java动态代理如何实现 ✅JDK动态代理和Cglib动态代理的区别 ✅拓展知识仓✅静态代理和动态代理的区别✅动态代理的用途✅Spring AOP的实现方式&#x1f4d1;JDK 动态代理的代码段&#x1f4d1;Cglib动态代理的代码块 ✅注意事项&#xff1a; 在Java中&#xff0c;实现动态代理…

python图片批量下载多线程+超时重试

背景 上篇python入门实战:爬取图片到本地介绍过如何将图片下载到本地,但是实际处理过程中会遇到性能问题:分页数过多下载时间过程、部分页面连接超时无法访问下载失败。本文从实战的角度解释一下如何处理这两个问题。 下载时间过长问题&#xff0c;处理方式是使用多线程…

从git上拉取代码---步骤

1、先进入gitlab地址 2、git clone 地址.git 3、cd 路径 4、git checkout dev 5、git checkout -b 自己的分支 &#xff08;创建自己的分支&#xff09;

Visual Studio2022配置ReSharper C++ 常用设置

如需安装免费的可以在下面留言&#xff0c;看到即回复 文章目录 Visual Studio2022配置ReSharper C 常用设置配置Visual Studio2022&#xff0c;使其能够按回车进行补全配置ReSharper C 设置自动弹出配置ReSharper C 的快捷键ReSharper C 去掉注释拼写使用中文注释 如何关闭新版…

SpringBoot整合jwt(小白入门)

本文项目所用版本为&#xff1a; https://blog.csdn.net/weixin_39570751/article/details/133386557 代码仓库: https://gitee.com/skyblue0678/springboot-demo 目录 什么是JWT JWT依赖 写一个jwt工具类 测试一下jwt 优化&#xff1a;将过期时间配置在文件中 答疑&…

Unitree H1,国内第一台能跑的全尺寸通用人形机器人

原创 | 文 BFT机器人 随着科技的不断发展&#xff0c;机器人技术已经逐渐渗透到各个领域&#xff0c;为人类的生产和生活带来了极大的便利。2023年可以说是通用人形机器人的高光之年&#xff0c;国内外不少机器人和科技团队纷纷发布了人形机器人原型机或产品规划&#xff0c;甚…

Python爬虫---解析---BeautifulSoup

BeautifulSoup简称&#xff1a;bs4 作用&#xff1a;解析和提取数据 1. 安装&#xff1a;pip install bs4 或pip install bs4 -i https://pypi.douban.com/simple&#xff08;使用国内镜像下载&#xff09; 注意&#xff1a;需要安装在python解释器相同的位置,例如&#xf…