首页 > 编程语言 >UE中创建Actor添加组件初始化(UEC++个人学习笔记)

UE中创建Actor添加组件初始化(UEC++个人学习笔记)

时间:2024-04-10 17:29:35浏览次数:28  
标签:actor TEXT AMyActor C++ 组件 Actor UE MyScene class

在ue中创建actorc++类,在actor的.h文件中添加五个组件

又由上到下的作用分别为:

获取下SceneComponent,用于操作其Transform等相应接口。

获取静态模型组件。

获取盒子碰撞组件。

获取粒子特效组件。

获取音频组件。

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

 actor的.h在class里面声明我们的变量

UCLASS()
class CFIRST_API AMyActor : public AActor
{
	GENERATED_BODY()
	
public:	
	// Sets default values for this actor's properties
	AMyActor();

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MySceneComponent")
		class USceneComponent* MyScene;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MySceneComponent")
		class UStaticMeshComponent* MyMesh;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MySceneComponent")
		class UParticleSystemComponent* MyParticle;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MySceneComponent")
		class UBoxComponent* MyBox;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MySceneComponent")
		class UAudioComponent* MyAudio;


};

 在CPP里面声明

AMyActor::AMyActor()
{
 	// 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<USceneComponent>(TEXT("MyCustomScene"));
	
	MyMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MyCustomStaticMesh"));

	MyParticle = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("MyCustomParticleSystem"));

	MyBox = CreateDefaultSubobject<UBoxComponent>(TEXT("MyCustomBox"));

	MyAudio = CreateDefaultSubobject<UAudioComponent>(TEXT("MyCustomAudio"));
}

然后也是在AMyActor::AMyActor()里设置父子关系

//设置父子级关系
	//设置MySence设置为默认根组件
	RootComponent = MyScene;
	//设置MyMesh为MySence的儿子
	MyMesh->SetupAttachment(MyScene);
	MyParticle->SetupAttachment(MyScene);
	MyBox->SetupAttachment(MyScene);

	MyAudio->SetupAttachment(MyBox);

实现的效果为:

笔记总结来源于:【【虚幻5】UE5C++零基础全网全流程开发从入门到进阶教程合集(持续跟新中)】https://www.bilibili.com/video/BV1Dc411f7nx?vd_source=90cb1ac44856e5e826e2bee8aa9d8a41

标签:actor,TEXT,AMyActor,C++,组件,Actor,UE,MyScene,class
From: https://blog.csdn.net/weixin_65376163/article/details/137604257

相关文章

  • C++核心编程
    C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放......
  • WDS+MDT网络启动自动部署windows(三)UEFI & BIOS 双PXE引导
    简介:我们可以通过调整启动文件来兼容不同的硬件(UEFI&BIOS),能否不手动调整呢?自动调整也是可以的。本来是是想将DHCP放在H3C5500上的,但是咨询过H3C的售前顾问后,没有任何一个型号支持这个功能,前面已经折腾过自动识别客户端类型,发送不同的启动文件了。为了更好的完成这个系列文章......
  • ROS中自定义全局算法规划器(c++)
     ros中编写一个全局路径规划器并集成为ros插件,加载到turtlebot3机器人平台上仿真验证参考资料:ROS中自定义全局规划器(上)_算法部署_哔哩哔哩_bilibili官网教程:navigation/Tutorials/WritingAGlobalPathPlannerAsPlugininROS-ROSWiki1.建立工作空间mkdir-pjps_......
  • vue中:key 的特殊使用
    1.常用的使用方法v-for 结合使用1<ul>2<liv-for="iteminitems":key="item.id">...</li>3</ul>唯一的key值在做虚拟DOM算法时尤为重要2.触发子组件并进行更新组件让其发生变化1<childrenComponentsv-model="files":key="uploadKey&q......
  • C++_STL提供了六大组件
    STL提供了六大组件StandardTemplateLibrary容器:Containers各种数据结构,如vector,list,deque,set,mep等。容器是类模板。在声明容器变量时,可以指定容器将保存的元素的类型算法:各种常用的算法,提供了执行各种操作的方式,包括对容器内容执行初始化,排序,搜索和转换等操作,比如sort,s......
  • vue简单的响应式布局
    <template><el-container><el-header>头部</el-header><el-container><!--准备两份aside侧边栏--><!--利用isCollapse动态控制侧边栏的宽度--><el-aside:width="isCollapse?'64px':'......
  • 【Vue I18n 国际化插件】vue3+vue-i18n 项目实战总结
    一、为什么要国际化?前端国际化:应用要服务于不同的地区的用户,所以应用不能单一语言;应用要能让不同地区的人无障碍使用就需要实现国际化。目前在各大商城项目中,对于国际化语言的需求越来越高了,其中最多的就是vue项目使用i18n插件实现多语言切换功能。前端国际化:应用要......
  • vue3复盘学习(一)
    其实说是复盘,因为在平常的开发中因为公司一些项目和其他原因断断续续的使用了一段时间vue3,因为着急赶项目,有些知识点没有系统性学习,所以决定从今天开始一点点再学习一遍٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ哈哈!刚开始从vue2过渡到vue3的同学们其实是有些不适应的,但是随着前端框......
  • Vue — Vue面试题:Vue3.0 特性
    CompositionAPI(组合式API):CompositionAPI允许开发者将逻辑按照功能或者相关性进行组织,而不是按照选项的不同部分(如data、methods、computed等)来分散代码。这种方式更灵活、更易于复用和维护,特别适用于编写大型复杂的组件。基于Proxy的响应式系统:Vue3中的响应式系统基于ES6......
  • C++笔试面试题整理
    常见C++笔试面试题整理1.C和C++的区别C是面向过程的语言,是一个结构化的语言,考虑如何通过一个过程对输入进行处理得到输出;C++是面向对象的语言,主要特征是“封装、继承和多态”。封装隐藏了实现细节,使得代码模块化;派生类可以继承父类的数据和方法,扩展了已经存在的模块,实现......