静态加载类和资源:指在编译时加载,并且只能在构造函数中编写代码
.h
//增加所需组件的头文件 #include "Components/SceneComponent.h" //场景组件 #include "Components/StaticMeshComponent.h" //静态网格体组件 #include "Components/BoxComponent.h" //Box碰撞体组件 #include "Components/AudioComponent.h" //音频组件 #include "Components/ChildActorComponent.h" //子Actor组件 #include "Particles/ParticleSystemComponent.h" //粒子组件 UCLASS() class 工程名称_API AMyActor : public AActor { //定义组件变量 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyComponent") class USceneComponent* MyScene; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyComponent") class UStaticMeshComponent* MyMesh; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyComponent") class UParticleSystemComponent* MyParticle; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyComponent") class UBoxComponent* MyBox; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyComponent") class UAudioComponent* MyAudio; //定义ChildActor组件类型变量 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MyComponent") class UChildActorComponent* MyChildActor; }
.cpp
AMyActor::AMyActor() //注意是在这里实现,不是BeginPlay、Tick { // 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; //初始化组件变量的值 MyScene = CreateDefaultSubobject(TEXT("MyScene")); MyMesh = CreateDefaultSubobject (TEXT("MyMesh")); MyParticle = CreateDefaultSubobject (TEXT("MyParticle")); MyBox = CreateDefaultSubobject (TEXT("MyBox")); MyAudio = CreateDefaultSubobject (TEXT("MyAudio")); MyChildActor = CreateDefaultSubobject (TEXT("MyChildActor")); //设置父子层级关系 RootComponent = MyScene; MyMesh->SetupAttachment(MyScene); MyParticle->SetupAttachment(MyScene); MyBox->SetupAttachment(MyScene); MyAudio->SetupAttachment(MyBox); MyChildActor->SetupAttachment(MyScene); //静态加载资源:设置Component中的属性值 static ConstructorHelpers::FObjectFinder TempMesh(TEXT("/Script/Engine.StaticMesh'/Game/StarterContent/Shapes/Shape_Cone.Shape_Cone'")); //引用一个StaticMesh资产,并存储到变量“TempStaticMesh”。FObjectFinder:查找Object MyMesh->SetStaticMesh(TempMesh.Object); //调用“SetStaticMesh”的方法,设置MyMesh组件的StaticMesh属性值 static ConstructorHelpers::FObjectFinder TempParticle(TEXT("/Script/Engine.ParticleSystem'/Game/StarterContent/Particles/P_Fire.P_Fire'")); MyParticle->SetTemplate(TempParticle.Object); static ConstructorHelpers::FObjectFinder TempAudio(TEXT("/Script/Engine.SoundWave'/Game/StarterContent/Audio/Collapse01.Collapse01'")); MyAudio->SetSound(TempAudio.Object); //静态加载资源:设置ChildActor组件中的ChildActorClass属性值 static ConstructorHelpers::FClassFinderTempActor(TEXT("/Script/Engine.Blueprint'/Game/StarterContent/Blueprints/Blueprint_CeilingLight.Blueprint_CeilingLight_C'")); //注意这里是FClassFinder:查找Class。注意被引用的Actor要加后缀”_C“ MyChildActor->SetChildActorClass(TempActor.Class); //注意这里是TempActor.Class }
猜你喜欢
- 17天前(兰州旅游文化产业发展有限公司)甘肃省兰州市2023年乡村旅游暨A级旅游景区管理工作培训班开班
- 17天前(希尔顿2021活动)希尔顿集团618盛夏大促开启
- 17天前(中旅酒店 维景)中旅酒店首次AI数字人直播亮相南京维景
- 17天前(三亚太阳湾柏悦度假酒店)三亚太阳湾柏悦酒店携手ROSEONLY诺誓缔造浪漫七夕
- 17天前(甘肃文旅项目)甘肃省文旅产业链招商引资推介会在天水成功举办
- 17天前(星级饭店的发展困境)星级饭店转型之路:从市场逻辑到行业实践的深度探索
- 17天前(上海迪士尼 夏天)酷爽夏日,奇妙相伴!来上海迪士尼度假区清凉入夏
- 17天前(福州“一县一桌菜”“两马乡宴”品鉴会圆满举办,马尾美食共叙血脉亲情)福州“一县一桌菜”“两马乡宴”品鉴会圆满举办,马尾美食共叙血脉亲情
- 17天前(锦江 iu)锦江荟APP原生鸿蒙版正式上线打造全场景旅行服务新体验
- 17天前(北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章