六一的部落格


关关难过关关过,前路漫漫亦灿灿。



虚幻引擎中的组件可以分为两大类

-
逻辑组件 不具备可视化功能
可视化组件 如静态网格组件,粒子系统控制组件等

给Actor派生类添加组件,扩展类的功能,通过组合 Composite 模式实现

初始化静态网格组件属于ASimpleGeometry对象构造过程中的一个环节,一应操作在构造函数中完成


添加静态网格体组件后的效果和后续操作

  1. 添加静态网格组件后, Actor对象拥有变换属性

    仍不可见
  2. 可在虚幻编辑器中为Actor对象绑定骨骼或体积

    可见
  3. 可在虚幻编辑器中为Actor对象应用材质

    图案或纹理

添加静态网格体组件


为类添加数据成员

  1. 前向声明

    SimpleGeometry.h

    1class UStaticMeshComponent;
  2. 添加静态网格体组件

    SimpleGeometry.h

    public

    -
    VisibleAnywhere 在虚幻编辑器的原型和实例中均可见
    1UPROPERTY(VisibleAnywhere)
    2UStaticMeshComponent* StaticMesh;

    针对静态网格组件,虚幻编辑器会添加Static Mesh属性


在构造函数中初始化

SimpleGeometry.cpp

  1. 包含头文件

    1#include "Components/StaticMeshComponent.h"
  2. 添加函数成员: 初始化组件

    private

    在构造函数中调用

    -
    UObject::CreateDefaultSubobject 创建组件; 返回指向给定类型对象的指针
    AActor::SetRootComponent 将可视化组件设为根组件

    StaticMeshInEditor 为组件在虚幻编辑器中对应的属性名,一经设置,不得修改

    1void ASimpleGeometry::InitStaticMesh()
    2{
    3    StaticMesh = CreateDefaultSubobject<UStaticMeshComponent>("StaticMeshInEditor");
    4    SetRootComponent(StaticMesh);
    5}

在虚幻编辑器中查看

  1. 在关卡中添加对象: 仍旧不可见
  2. 细节面板可看到根组件StaticMesh,及在虚幻编辑器中的属性名StaticMeshInEditor
  3. 细节面板中可看到变换参数,以及静态网格体(Static Mesh)属性

    可以通过静态网格体属性绑定模型



为静态网格体组件绑定模型

使用新手包里的模型或引擎提供的模型


添加新手包

  1. 内容浏览器点击 Add 按钮, 选择 添加功能或内容包

  2. 内容 > 初学者内容包



使用虚幻引擎自带内容


显示引擎内容

  1. 在世界大纲选中对象

  2. 细节 > Static Mesh > 下拉框


  3. 点击 管理 按钮

  4. 勾选 Show Engine Content



绑定立方体

  1. 搜索Cube

  2. 选择 EngineMeshes/Cube



效果图



其他网格体

-
立方体 Engine/EngineMeshes/Cube
球形 Engine/EngineMeshes/Sphere
圆锥 Engine/BasicShapes/Cone

添加静态网格体组件


虚幻引擎中的组件可以分为两大类

-
逻辑组件 不具备可视化功能
可视化组件 如静态网格组件,粒子系统控制组件等

给Actor派生类添加组件,扩展类的功能,通过组合 Composite 模式实现

初始化静态网格组件属于ASimpleGeometry对象构造过程中的一个环节,一应操作在构造函数中完成


添加静态网格体组件后的效果和后续操作

  1. 添加静态网格组件后, Actor对象拥有变换属性

    仍不可见
  2. 可在虚幻编辑器中为Actor对象绑定骨骼或体积

    可见
  3. 可在虚幻编辑器中为Actor对象应用材质

    图案或纹理

添加静态网格体组件


为类添加数据成员

  1. 前向声明

    SimpleGeometry.h

    1class UStaticMeshComponent;
  2. 添加静态网格体组件

    SimpleGeometry.h

    public

    -
    VisibleAnywhere 在虚幻编辑器的原型和实例中均可见
    1UPROPERTY(VisibleAnywhere)
    2UStaticMeshComponent* StaticMesh;

    针对静态网格组件,虚幻编辑器会添加Static Mesh属性


在构造函数中初始化

SimpleGeometry.cpp

  1. 包含头文件

    1#include "Components/StaticMeshComponent.h"
  2. 添加函数成员: 初始化组件

    private

    在构造函数中调用

    -
    UObject::CreateDefaultSubobject 创建组件; 返回指向给定类型对象的指针
    AActor::SetRootComponent 将可视化组件设为根组件

    StaticMeshInEditor 为组件在虚幻编辑器中对应的属性名,一经设置,不得修改

    1void ASimpleGeometry::InitStaticMesh()
    2{
    3    StaticMesh = CreateDefaultSubobject<UStaticMeshComponent>("StaticMeshInEditor");
    4    SetRootComponent(StaticMesh);
    5}

在虚幻编辑器中查看

  1. 在关卡中添加对象: 仍旧不可见
  2. 细节面板可看到根组件StaticMesh,及在虚幻编辑器中的属性名StaticMeshInEditor
  3. 细节面板中可看到变换参数,以及静态网格体(Static Mesh)属性

    可以通过静态网格体属性绑定模型



为静态网格体组件绑定模型

使用新手包里的模型或引擎提供的模型


添加新手包

  1. 内容浏览器点击 Add 按钮, 选择 添加功能或内容包

  2. 内容 > 初学者内容包



使用虚幻引擎自带内容


显示引擎内容

  1. 在世界大纲选中对象

  2. 细节 > Static Mesh > 下拉框


  3. 点击 管理 按钮

  4. 勾选 Show Engine Content



绑定立方体

  1. 搜索Cube

  2. 选择 EngineMeshes/Cube



效果图



其他网格体

-
立方体 Engine/EngineMeshes/Cube
球形 Engine/EngineMeshes/Sphere
圆锥 Engine/BasicShapes/Cone