UE4 手把手教你做插件(4)做一个可以拖入场景的小方块插件

news/2024/4/24 10:32:42/文章来源:https://blog.csdn.net/asiwxy/article/details/129178541

0,前言

学习一下如何编写一个有actor的插件,能够将它拖入场景里面。

1,创建插件

(1)创建一个空白插件

添加之后vs里面就会多出一个目录:

(2)给插件添加一个actor

 

 

创建完actor之后,再给actor创建一个组件

 

 都创建完之后,你vs的目录如下:

 2,代码修改

(1)MyCubeActor

添加一个我们新建的组件声明

class UMyCubeComponent* MyCubeComponent;

在构造函数中增加组件的创建

AMyCubeActor::AMyCubeActor()
{// 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;MyCubeComponent = CreateDefaultSubobject<UMyCubeComponent>(TEXT("MyCubeComponent"));RootComponent = (USceneComponent*)MyCubeComponent;
}

(2)MyCubeComponent

在头文件中声明增加:

	virtual void OnRegister() override;UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintSetter = SetBallMesh, Category = "Ball")UStaticMesh* BallMesh;UFUNCTION(BlueprintCallable, Category = "Rendering|Components|WaterBall3D")void SetBallMesh(UStaticMesh* Value);UPROPERTY(EditAnywhere, BlueprintReadWrite,  Category = "Ball")UStaticMeshComponent* CubeMeshComponent;

在构造函数中添加获取网格的代码:

	BallMesh = (UStaticMesh*)StaticLoadObject(UStaticMesh::StaticClass(), NULL, TEXT("/Game/StarterContent/Shapes/Shape_Cube.Shape_Cube"), NULL, LOAD_None, NULL);

在onregister函数中添加:

void UMyCubeComponent::OnRegister()
{Super::OnRegister();if (!CubeMeshComponent){FName CubeMeshComponentName = MakeUniqueObjectName(this, UMyCubeComponent::StaticClass(), TEXT("CubeMesh"));CubeMeshComponent = NewObject<UStaticMeshComponent>(this, CubeMeshComponentName, RF_Transactional);CubeMeshComponent->RegisterComponent();//GetOwner()->AddInstanceComponent(WaterComponent);CubeMeshComponent->AttachToComponent(this, FAttachmentTransformRules::KeepRelativeTransform);CubeMeshComponent->SetStaticMesh(BallMesh);CubeMeshComponent->SetRelativeLocation(FVector::ZeroVector);CubeMeshComponent->SetRelativeRotation(FRotator::ZeroRotator);CubeMeshComponent->SetRelativeScale3D(FVector(50 / 50.f));}	
}

注意:这部分不能加到构造函数中,不然 网格绑定不了actor和component,会导致把方块儿拖到场景中时,actor,component与网格的坐标中心不一致。

 3,运行结果

拖入场景就可以看到我们自己创建的插件啦! 

 

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

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

相关文章

ubuntu本地访问nas

需求 本地磁盘空间太小&#xff0c;本地网络里有个nas&#xff0c;希望将nas作为数据盘挂载到本地使用。 方法1 基于sftp访问nas 首先nas设置时要打开sftp访问功能。 然后用ubuntu桌面访问服务器的功能登录sftp&#xff0c;类似如下指令 sftp://user192.168.0.100 ubuntu下…

DevData Talks | 对谈谷歌云 DORA 布道师,像谷歌一样度量 DevOps 表现

本期 DevData Talks 我们请到来自 Google Cloud 谷歌云的 DORA 研究团队的嘉宾 Nathen Harvey与 Apache DevLake、CNCF DevStream 的海外社区负责人 Maxim 进行对谈。如果您关注 DevOps 的话&#xff0c;也许对这个团队有所耳闻。 DORA 的全称是 DevOps Research and Assessme…

【运动控制】CNC三轴小线段路径规划

CNC三轴小线段路径规划 文章目录CNC三轴小线段路径规划一、项目说明二、具体实现1、速度规划2、小线段插补3、运动学逆解刀轴插补点4、差分处理得到实际的速度和加速度5、加速度滑动平均6、实现的效果如图所示三、Reference写在前面&#xff0c;本文是作为一个练手小项目的总结…

论文浅尝 | Deep Reinforcement Learning for Entity Alignment

笔记整理&#xff1a;陈鹏&#xff0c;天津大学硕士链接&#xff1a;https://aclanthology.org/2022.findings-acl.217.pdf动机实体对齐(Entity Alignment&#xff09;的基本目标在于发现两个知识图谱间指向同一现实对象的实体对&#xff0c;以便将不同知识图谱连接起来&#x…

Interview系列 - 06 Java | ArrayList底层源码分析 | 遍历集合时如何删除集合中的元素

文章目录1. 底层源码分析01. 属性02. 构造方法03. 在数组的末尾添加元素 add(E e)04. 在数组的指定位置添加元素 add(int index, E element)05. 替换指定位置的元素 set(int index, E element)06. 获取指定索引位置处的元素 get(int index)07. 删除指定位置的元素 remove(int i…

华为OD机试真题 用 C++ 实现 - 众数和中位数 | 多看题,提高通过率

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

SpringCloud - Feign远程调用

目录 Feign的远程调用 RestTemplate方式调用存在的问题 介绍与初步使用 Feign的自定义配置 Feign运行自定义配置来覆盖默认配置&#xff0c;可以修改的配置如下&#xff1a; 配置Feign日志有两种方式&#xff1a; Feign性能优化 Feign底层的客户端实现&#xff1a; 连…

AI作画—中国画之山水画

山水画&#xff0c;简称“山水”&#xff0c;中国画的一种&#xff0c;描写山川自然景色为主体的绘画。山水画在我国绘画史中占有重要的地位。 山水画形成于魏晋南北朝时期&#xff0c;但尚未从人物画中完全分离。隋唐时始终独立&#xff0c;五代、北宋时趋于成熟&#xff0c;…

Linux多媒体子系统01:从用户空间使用V4L2子系统

1 V4L2应用编程基础1.1 概述V4L2应用编程需要使用如下系统调用&#xff0c;open(): 打开V4L2设备 close(): 关闭V4L2设备 ioctl(): 向V4L2设备驱动程序发送控制命令 mmap(): 将V4L2设备驱动程序分配的缓冲区内存映射到用户空间 read()或write(): 这2个系统调用是否支持取决于流…

领导催我优化SQL语句,我求助了ChatGPT。这是ChatGPT给出的建议,你们觉得靠谱吗

作为一个程序员&#xff0c;无论在面试还是工作中&#xff0c;优化SQL都是绕不过去的难题。 为啥&#xff1f;工作之后才会明白&#xff0c;随着公司的业务量增多&#xff0c;SQL的执行效率对程系统运行效率的影响逐渐增大&#xff0c;相对于改造代码&#xff0c;优化SQL语句是…

LeetCode-93. 复原 IP 地址

目录题目思路回溯法题目来源 93. 复原 IP 地址 题目思路 意识到这是切割问题&#xff0c;切割问题就可以使用回溯搜索法把所有可能性搜出来&#xff0c;和131.分割回文串就十分类似了。 回溯法 1.递归参数 startIndex一定是需要的&#xff0c;因为不能重复分割&#xff0c…

实战:手把手教你colossal-AI复现Chatgpt的流程

相信很多人都看了使用colossal-AI复现Chatgpt的流程的文章&#xff0c;但实际上看过了&#xff0c;不免有人发出“说得贼明白&#xff0c;就是自己做不出来”的感叹吧。本人公开一下实战过程&#xff0c;给有兴趣复现chatgpt流程的朋友一个参考。 一、环境搭建&#xff1a; 1…

ES6-ES11基本全部语法

在进入es6语法之前&#xff0c;先走一波es5遍历迭代Api&#xff0c;&#xff0c;它们的作用&#xff0c;应用场景&#xff0c;参数&#xff0c;以及返回值分别是什么。&#xff08;forEach、map、some、every、filter&#xff09;我们统一设定一个初始数组&#xff1a;let arra…

【likeshop多商户】电子面单商家直播上线啦~

likeshop多商户商城v2.2.0版本更新啦&#xff01; 新增功能&#xff1a; 商家直播 单子面单 优化&#xff1a; 个人中心优惠券数量统计优化 修复&#xff1a; 秒杀商品待审核时&#xff0c;下单价格计算错误 个人中心修改头像后地址保存错误 「商家直播」 提升品牌知名度…

华为OD机试真题 用 C++ 实现 - 子序列长度 | 多看题,提高通过率

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

2-并发篇

线程有哪些状态 java的线程状态有6种&#xff1a; 操作系统中有5状态的说明 注意java的runnable对应了就绪、运行、阻塞I/O 线程池的核心参数 主要是说线程池的一个实习类 threadPoolExecutor.class 1.corePoolSize 核心线程数据&#xff08;可以为0&#xff09; 最多保…

JavaTCP通信程序

3 TCP通信程序 3.1 TCP通信原理 TCP通信协议是一种可靠的网络协议&#xff0c; 它在通信的两端名建立一个Socke对象&#xff0c; 从而在通信的两端形成网络虚拟链路一旦建立了 虚拟的网络链路&#xff0c;两端的程序就可以通过虚拟链路进行通信Java对基于TCP协议的的网络提供…

Python-生成列表

1.生成列表使用列表前必须先生成列表。1.1使用运算符[ ]生成列表在运算符[ ]中以逗号隔开各个元素会生成包含这些元素的新列表。另外&#xff0c;如果[ ]中没有元素就会生成空列表示例>>> list01 [] >>> list01 [] >>> list02 [1, 2, 3] >>…

LeetCode 206. 反转链表

LeetCode 206. 反转链表 难度&#xff1a;easy\color{Green}{easy}easy 题目描述 给你单链表的头节点 headheadhead &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2&a…

Java Stream、File、IO 超详细整理,适合新手入门

目录 Java Stream Java File Java IO Java Stream Java Stream 是 Java 8 中引入的一种新的抽象数据类型&#xff0c;它允许开发人员使用函数式编程的方式来处理集合数据。 使用 Java Stream 可以方便地进行过滤、映射、排序和聚合等操作。下面是一个简单的示例&#xff1a;…