UE5 C++(八)— 创建Actor、添加组件

文章目录

  • Actor和组件介绍
    • Actor
    • 组件(Component)
  • 在蓝图中创建Actor,添加组件
  • 在C++中创建Actor,添加组件

Actor和组件介绍

Actor

详细介绍可以去看 Actor和几何体官方文档

还有大钊的这篇文章《InsideUE4》GamePlay架构(一)Actor和Component

所有可以放入关卡的对象都是 Actor,比如摄像机、静态网格体、玩家起始位置。Actor支持三维变换,例如平移、旋转和缩放。你可以通过游戏逻辑代码(C++或蓝图)创建(生成)或销毁Actor。

在C++中,AActor是所有Actor的基类。
请添加图片描述

组件(Component)

详细介绍可以去看 组件官方文档

还有大钊的这篇文章《InsideUE4》GamePlay架构(一)Actor和Component

组件(Component) 是可以添加到Actor上的一项功能。

当你为Actor添加组件后,该Actor便获得了该组件所提供的功能。例如:

  • 聚光灯组件(Spot Light Component)允许你的Actor像聚光灯一样发光,
  • 旋转移动组件(Rotating Movement Component)能使你的Actor四处旋转,
  • 音频组件(Audio Component)将使你的Actor能够播放声音。

组件必须绑定在Actor身上,它们无法单独存在。

请添加图片描述

在蓝图中创建Actor,添加组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在C++中创建Actor,添加组件

创建一个ActorC++类 — MyCustomActor
在这里插入图片描述
MyCustomActor.h

#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 DEMO_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 = "MySceneComponent")USceneComponent *SceneComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MySceneComponent")UStaticMeshComponent *StaticMeshComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MySceneComponent")UBoxComponent *BoxComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MySceneComponent")UAudioComponent *AudioComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "MySceneComponent")UParticleSystemComponent *ParticleSystemComponent;
};

MyCustomActor.cpp


#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;// 创建组件SceneComponent = CreateDefaultSubobject<USceneComponent>(TEXT("CustomScene"));StaticMeshComponent = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("CustomStaticMesh"));BoxComponent = CreateDefaultSubobject<UBoxComponent>(TEXT("CustomBox"));AudioComponent = CreateDefaultSubobject<UAudioComponent>(TEXT("CustomAudio"));ParticleSystemComponent = CreateDefaultSubobject<UParticleSystemComponent>(TEXT("CustomParticleSystem"));// 把组件添加到根组件RootComponent = SceneComponent;StaticMeshComponent->SetupAttachment(SceneComponent);BoxComponent->SetupAttachment(SceneComponent);AudioComponent->SetupAttachment(BoxComponent);ParticleSystemComponent->SetupAttachment(SceneComponent);
}// 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
在这里插入图片描述

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

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

相关文章

【算法与数据结构】135、LeetCode分发糖果

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题的思路是要相比较一边&#xff0c;然后在比较另外一边&#xff0c;左右两边一起比较的代码非常难写…

Docker搭建有分词器的ES集群

# 一、创建master节点 # 1.对于Elasticsearch&#xff0c;这个设置很重要&#xff0c;因为Elasticsearch&#xff08;特别是它的底层搜索引擎Lucene&#xff09;会创建大量的虚拟内存区域。如果 vm.max_map_count 的值太低&#xff0c;Elasticsearch可能无法正常运行或表现出性…

数据挖掘工具全面解析:如何选择最适合你的工具?

引言 在当今信息爆炸的时代&#xff0c;数据扮演着至关重要的角色。然而&#xff0c;想要从海量数据中挖掘出有价值的信息并非易事。数据挖掘工具的出现为我们提供了解决方案。本文将带您深入了解几种常用的数据挖掘工具&#xff0c;以便您能够选择最适合自己需求的工具。 1.…

配置BGP的基本示例

一、组网需求&#xff1a; 需要在所有Switch间运行BGP协议&#xff0c;SwitchA、SwitchB之间建立EBGP连接&#xff0c;SwitchB、SwitchC和SwitchD之间建立IBGP全连接。 请确保该场景下互联接口的STP处于未使能状态。因为在使能STP的环形网络中&#xff0c;如果用交换机的VLAN…

谷歌手机安装证书到根目录

1、前提你已经root&#xff0c;安装好面具 2&#xff0c;下载movecert模块&#xff0c;自动帮你把证书从用户证书移动成系统证书 视频教程&#xff0c;手机为谷歌手机 https://www.bilibili.com/video/BV1pG4y1A7Cj?p11&vd_source9c0a32b00d6d59fecae05b4133f22f06 软件下…

持续集成交付CICD:基于ArgoCD 的GitOps 自动化完成前端项目应用发布与回滚

目录 一、实验 1. 环境 2. K8S master节点部署Argo CD 3.基于ArgoCD 实现GitOps &#xff08;同步部署文件&#xff09; 4.基于ArgoCD 实现GitOps &#xff08;同步HELM文件&#xff09; 二、问题 1. ArgoCD 连接K8S集群状态为 Unknown 2.ArgoCD 创建application失败 …

〖大前端 - 基础入门三大核心之JS篇(58)〗- 面向对象案例

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

Linux(一)Linux理论

文章目录 一、Linux概述1.1 体系结构1.1.1 Linux内核1.1.2 用户态与内核态1.1.3 交换空间1.1.4 CLI和GUI 1.2 开机启动过程1.3 系统运行级别1.4 Linux进程1.4.1 Linux进程通信的方法1.4.2 Linux进程状态 二、文件2.1 Linux文件系统2.2 目录结构2.3 绝对路径和相对路径2.4 日志文…

[SWPUCTF 2021 新生赛]caidao

打开环境 这显示的就是一句话木马呗&#xff0c;直接用中国蚁剑连接&#xff0c;密码是wllm 根目录找到flag

Python Opencv实践 - 手势音量控制

本文基于前面的手部跟踪功能做一个手势音量控制功能&#xff0c;代码用到了前面手部跟踪封装的HandDetector.这篇文章在这里&#xff1a; Python Opencv实践 - 手部跟踪-CSDN博客文章浏览阅读626次&#xff0c;点赞11次&#xff0c;收藏7次。使用mediapipe库做手部的实时跟踪&…

Android app 调用系统摄像头摄像

一、activi_main.xml代码: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.c…

c++输出简单日志带日期时间功能

最近项目需要简单输出日志&#xff0c;用巨大的日志类未免繁琐&#xff0c;于是写了这个简单的日志函数&#xff0c;带日期&#xff0c;MFC下可以直接使用。 直接上代码&#xff1a; template <typename T> std::string ConvertToStringS(T value) {std::stringstream …

详解Keras3.0 Data loading: Text data loading

text_dataset_from_directory 用于从目录中读取文本文件并创建一个数据集。这个函数可以自动将文本文件转换为整数序列&#xff0c;以便在神经网络中使用。 keras.utils.text_dataset_from_directory(directory,labels"inferred",label_mode"int",class_…

nginx转发ingress-nginx问题记录

背景 想直接通过域名访问k8s上的服务. 想到k8s上可以直接通过ingress配置. 不过ingress默认启动的端口3xxxxx. 一般不可能让用户访问我们的服务加上端口. 所以现在要解决直接通过80端口访问ingress的问题. 方案 修改ingress-nginx端口(这个是在网上搜到的方案, 但未选择) 这…

【数据结构和算法】定长子串中元音的最大数目

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 方法一&#xff1a;滑动窗口 2.2 方法二&#xff1a;滑动窗口优化版 三、代码 3.1 方法一&#xf…

Spring Boot构建项目常用注解

忙着去耍帅&#xff0c;后期补充完整.....................................

搭建esp32-idf开发环境并烧入第一个程序

ESP32下载idf并烧入第一个程序 一.官网下载idf安装包二.安装idf三 .测试安装是否成功3.1进入idf控制台3.2 查看安装版本3.3 编译工程 四.下载程序4.1查看所在端口4.2下载程序4.3 监听串口 一.官网下载idf安装包 点击下载 如图&#xff1a; 我们选择离线下载&#xff0c;注意…

Qt 国际化——创建中英文翻译步骤

Qt 国际化——创建中英文翻译步骤 说明&#xff1a;之前我的csdn博客&#xff0c;第一篇文章发表的就是Qt国际化的文章&#xff08;点击打开&#xff09;&#xff0c;写的也过于简单了&#xff1a; 今天&#xff0c;这篇文章再详细的记录下&#xff0c;中英文翻译的步骤。 一…

diffusers-训练自己的模型

一、搭建dataset 基于datasets这个库创建的dataloader&#xff0c;底层代码还待探索 二、修改模型结构&#xff08;非必要&#xff09; 尽量可以利用已有的预训练权重去训练模型&#xff0c;但是权重并不一定能够完全是适配&#xff0c;所以还需要自己来视情况做修改&#xf…

详解TensorFlow2.0 API:tf.data.Dataset

tf.data.Dataset是TensorFlow中的一个类&#xff0c;用于创建和操作数据集。它提供了一种高效的方式来处理大量数据&#xff0c;支持并行读取、批处理、重复等操作。在使用tf.data.Dataset时&#xff0c;需要注意数据类型的兼容性。如果需要将字符串和数字混合在一起&#xff0…