组件和碰撞

2021-07-20  本文已影响0人  wjundong

学习利用组件将Pawn与物理交互、使用粒子效果等方法。

创建 Pawn 子类

为了能对 Actor 进行控制, 创建 Pawn 子类并命名为 CollidingPawn

添加粒子系统组件

创建组件

为了实现碰撞, 需要创建具有物理碰撞性质的组件, 球体组件是一种可与游戏场景交互并碰撞的物理实体, 本例子使用球体组件。同时本例子还需要负责显示形态的静态网格体组件, 可附加的摄像机组件, 控制游戏视角的弹簧臂组件以及可控制的粒子系统组件. 有些组件需要包含头文件才能编译成功:

#include "UObject/ConstructorHelpers.h"
#include "Particles/ParticleSystemComponent.h"
#include "Components/SphereComponent.h"
#include "Camera/CameraComponent.h"
#include "GameFramework/SpringArmComponent.h"

同时在类中加入粒子系统组件类型的成员变量:

UPROPERTY()
    class UParticleSystemComponent* OurParticleSystem;

配置游戏输入

在编辑器中,编辑->项目设置->输入, 在绑定中添加:

操作映射
ParticleToggle 空格
轴映射
MoveForward W 1.0
S -1.0
MoveRight A -1.0
D 1.0
Turn Mouse X 1.0

创建PawnMovementComponent子类

PawnMovementComponent (Pawn移动组件) 拥有部分强大内置功能,以便使用常见物理功能,同时便于在大量Pawn类型间共享移动代码。使用组件分隔不同功能是上佳方法,可在项目增大、Pawn越加复杂时减少杂乱。创建PawnMovementComponent子类并将其命名为 CollidingPawnMovementComponent

同时使用Pawn和组件

在 CollidingPawn.h中添加我们自定义的Pawn移动组件

UPROPERTY()
    class UCollidingPawnMovementComponent* OurMovementComponent;

添加头文件

#include "CollidingPawnMovementComponent.h"

须确保列最后一个头文件是 "generated.h",否则会造成编译错误。

上一篇下一篇

猜你喜欢

热点阅读