UEC++添加玩家冲刺功能

当前场景:需求和项目结构

有一个C++的LGBaseCharacter父类,这个父类用于玩家和AI继承。有一个C++的LGPlayerCharacter玩家子类。现在需要添加冲刺功能。

结构分析

由于LGBaseCharacter父类继承于ACharacter

并且在ACharacter中有CharacterMovementComponent组件

所以可以通过重新构造一个有参构造函数来实现对CharacterMovementComponent组件的功能重写,用于替换调继承自ACharacter的移动组件

准备一个C++的CharacterMovementComponent类组件

关于C++的MovementComponent继承

当父类中只含有一个带参构造函数时,子类的构造函数需要显示调用父类的构造函数

在BaseCharacter中实现带参构造函数的实现,参数类型是const FObjectInitializer& ObjectInitializer类型

玩家子类在继承这个基础玩家类后,也需要显示调用父类的构造函数

PlayerCharacter.h

PlayerCharacter.cpp

需要在BaseCharacter.cpp中的构造函数中使用到对象初始化的构建器。在cpp文件中对ACharacter的带参构造函数进行显示调用时,可以对参数进行

此处的SetDefaultSubobjectClass<修改后的创建类型>(需要修改的组件的名字)

我们需要把之前创建的CharacterMovementComponent类的类型作为修改后的类型填进去。然后找到ACharacter中的CharacterMovementComponent的名字作为需要修改组件的信息填进去。

可以在Character.cpp中找到有关的名字信息

以上就可以把继承ACharacter类中的移动组件替换成我们自定义的移动组件了。

 

在自定义的移动组件类中重写需要冲刺的逻辑代码

posted @ 2022-04-29 12:34  AFK_W  阅读(179)  评论(0)    收藏  举报