【UE C++】重写基类中的BeginPlay、Tick函数

前言

为了让游戏场景中的各种继承于"Actor"的游戏对象在生命周期中执行自定义逻辑和行为,我们通常需要重写"Actor"类及其派生类中的BeginPlay、Tick函数。

那么如何用C++重写BeginPlay、Tick函数呢,可参考如下步骤。

步骤

  1. 在头文件中添加如下代码,表示我们要声明函数重写。其中:

"virtual" 是一个关键字,用于声明虚函数。(虚函数是一种特殊的成员函数,可以在派生类中重写基类中的同名函数)

"override" 也是一个关键字,用于明确地指示派生类中的成员函数是对基类中的虚函数的重写。当派生类中的函数被标记为 override 时,编译器会检查该函数是否确实覆盖了基类中的虚函数,如果没有正确覆盖,编译器将生成一个错误。

cpp 复制代码
public:
	virtual void BeginPlay() override;
	virtual void Tick(float DeltaTime) override;
  1. 接下来我们需要在cpp中实现BeginPlay、Tick函数。

如果想快速在cpp中定义BeginPlay、Tick函数,我们可以点击"显示可能修补的程序"

点击创建在cpp中的定义

此时在cpp中就自动实现了这两个函数

为了在当前的派生类中调用基类中的BeginPlay、Tick函数,我们可使用"Super"(在 UE 中,通常使用 Super::FunctionName() 来调用父类的同名函数,以确保父类中的逻辑得以执行。)

cpp 复制代码
void AMyGameMode::BeginPlay()
{
	Super::BeginPlay();
}

void AMyGameMode::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
}
相关推荐
可峰科技6 分钟前
Apriltag_ros CMakeList.txt一句话导致其他包编译失败
c++
code bean6 分钟前
【C++ 】C++ 与 C#:using 关键字、命名空间及作用域解析符对比
开发语言·c++·c#
CAE虚拟与现实6 分钟前
C# 调用 DLL为什么不像 C/C++调用 DLL 时需要lib库
开发语言·c++·c#·动态链接库·dll库·lib库
Larry_Yanan7 分钟前
Qt线程使用(一)直接继承QThread类
开发语言·c++·qt·ui
Yu_Lijing17 分钟前
【个人项目】C++基于websocket的多用户网页五子棋(上)
开发语言·c++·websocket
ulias21230 分钟前
初步了解STL和string
开发语言·c++·mfc
waves浪游42 分钟前
进程控制(上)
linux·运维·服务器·开发语言·c++
一匹电信狗1 小时前
【LeetCode】栈和队列进阶题目
c++·算法·leetcode·职场和发展·stl·栈和队列
Bin二叉1 小时前
南京大学cpp复习——第二部分(继承)
开发语言·c++·笔记·学习
lingggggaaaa1 小时前
免杀对抗——C2远控篇&PowerShell&C#&对抗AV-EDR&停用AMSI接口&阻断ETW跟踪&调用
c语言·开发语言·c++·学习·安全·c#·免杀对抗