添加静态网格体组件
2024年1月7日 2024年1月12日
虚幻引擎中的组件可以分为两大类
- | |
---|---|
逻辑组件 | 不具备可视化功能 |
可视化组件 | 如静态网格组件,粒子系统控制组件等 |
给Actor派生类添加组件,扩展类的功能,通过组合 Composite
模式实现
初始化静态网格组件属于ASimpleGeometry对象构造过程中的一个环节,一应操作在构造函数中完成
添加静态网格体组件后的效果和后续操作
- 添加静态网格组件后, Actor对象拥有变换属性
仍不可见 - 可在虚幻编辑器中为Actor对象绑定骨骼或体积
可见 - 可在虚幻编辑器中为Actor对象应用材质
图案或纹理
添加静态网格体组件
为类添加数据成员
-
前向声明
SimpleGeometry.h
1class UStaticMeshComponent;
-
添加静态网格体组件
SimpleGeometry.h
public
- VisibleAnywhere 在虚幻编辑器的原型和实例中均可见 1UPROPERTY(VisibleAnywhere) 2UStaticMeshComponent* StaticMesh;
针对静态网格组件,虚幻编辑器会添加Static Mesh属性
在构造函数中初始化
SimpleGeometry.cpp
-
包含头文件
1#include "Components/StaticMeshComponent.h"
-
添加函数成员: 初始化组件
private
在构造函数中调用
- UObject::CreateDefaultSubobject 创建组件; 返回指向给定类型对象的指针 AActor::SetRootComponent 将可视化组件设为根组件 StaticMeshInEditor
为组件在虚幻编辑器中对应的属性名,一经设置,不得修改1void ASimpleGeometry::InitStaticMesh() 2{ 3 StaticMesh = CreateDefaultSubobject<UStaticMeshComponent>("StaticMeshInEditor"); 4 SetRootComponent(StaticMesh); 5}
在虚幻编辑器中查看
- 在关卡中添加对象: 仍旧不可见
- 细节面板可看到根组件StaticMesh,及在虚幻编辑器中的属性名StaticMeshInEditor
- 细节面板中可看到变换参数,以及静态网格体(Static Mesh)属性
可以通过静态网格体属性绑定模型
为静态网格体组件绑定模型
使用新手包里的模型或引擎提供的模型
添加新手包
-
内容浏览器点击
Add
按钮, 选择添加功能或内容包
-
内容 > 初学者内容包
使用虚幻引擎自带内容
显示引擎内容
-
在世界大纲选中对象
-
细节 > Static Mesh > 下拉框
-
点击
管理
按钮 -
勾选
Show Engine Content
绑定立方体
-
搜索Cube
-
选择
EngineMeshes/Cube
效果图
其他网格体
- | |
---|---|
立方体 | Engine/EngineMeshes/Cube |
球形 | Engine/EngineMeshes/Sphere |
圆锥 | Engine/BasicShapes/Cone |