欢迎光临散文网 会员登陆 & 注册

十一、蓝图与C++:添加组件

2022-12-18 11:25 作者:爱玩UE5的小哥哥  | 我要投稿

一.蓝图中为蓝图类添加组件

创建一个蓝图类:BP_AddComponent,添加三个静态网格体(StaticMesh),他们的父子关系是cube>sphere>cone

二.如何在C++中找到组件类型是什么?

鼠标右键点击组件,在组件前面加U

静态网格体:UStaticMeshCompinent
摄像机组件:UCameraConpinent
弹簧臂组件:USpringArmComponent

碰撞盒子组件:UBoxComponent

三.C++中实现BP_AddComponent过程

1.创建一个基于Actor的C++类:Cpp_AddComponent

2.在C++中定义组件

基于Cpp_AddComponent这个C++类创建一个蓝图类

3.在构造函数中实例化上述三个静态网格体组件

4.为三个静态网格体组件设置父子关系

默认的根组件是一个Scene组件;

5.为静态网格体组件添加静态网格资源

①手动添加

②C++添加

解析:

ConstructorHelpers:

构造函数助手,该函数用于在构造函数中加载对象(Object)资源或者类(Class)资源.

加载对象用法:ConstructorHelpers::FObjectFinder<资源类型>自己命名的资源名(资源引用/路径);

只能在构造函数中使用!!!!!!!!!!!!!!!!!

②资源类型获取方式:

方式与获取组件类型相似,在资源上右键,可以看到打开xxx.h,xxx就是类型,同样需要加“U”

模型:UStaticMesh
材质:UMaterial

③资源引用获取方式:


/Script/Engine.StaticMesh'/Game/Mesh/Cube.Cube'

我们只需要‘’里面的内容:/Game/Mesh/Cube.Cube

ConstructorHelpers::FObjectFinder<UStaticMesh>CubeMeshFile(TEXT("/Game/Mesh/Cube.Cube"));

6.设置静态网格物体的位置

7.为模型添加材质


四.完整代码

.h文件

.cpp文件

五.总结

1.组件都是U开头,UxxxComponent类型

2.创建组件使用CreateDefaultSubobject.语法:

3.组件指针=CreateDefaultSubobject<UxxxComponent>(TEXT("组件名"));

4..组件使用SetupAttachment函数实现创建子父级关系

5.ConstructorsHelpers(构造函数助手)用于在构造函数中加载资源对象,

(1)语法:ConstructorHelpers::FObjectFinder<UXXX(类型)>资源名(TEXT("引用"));

(2)资源名.Successed()用来判断加载结果

(3)资源名.Object用于获取加载成功的资源对象

(4)只能在构造函数中使用!!! 




十一、蓝图与C++:添加组件的评论 (共 条)

分享到微博请遵守国家法律