返回

UE4 C++ 从入门到精通(二十一):触发器框内的 Actor

前端

在上一节教程中,我们学习了如何创建和使用简单的 C++ 类。在本节教程中,我们将通过特定的 actor 触发重叠事件。

首先,我们需要创建一个新的 C++ 类。在 Visual Studio 中,右键单击项目文件夹,然后选择“添加”>“新建项”。在“新建项”对话框中,选择“C++ 类”,然后单击“添加”。

在“新建类”对话框中,输入类名“TriggerBox”,然后单击“确定”。

这将在项目文件夹中创建一个名为“TriggerBox.h”的头文件和一个名为“TriggerBox.cpp”的源文件。

接下来,我们需要将 TriggerBox 类添加到我们的项目中。在 Visual Studio 中,右键单击项目文件夹,然后选择“添加”>“现有项”。在“添加现有项”对话框中,导航到 TriggerBox.h 文件,然后单击“添加”。

现在,我们需要将 TriggerBox 类添加到我们的场景中。在关卡编辑器中,右键单击关卡视口,然后选择“添加”>“Actor”。在“添加 Actor”对话框中,找到 TriggerBox 类,然后单击“添加”。

这将在场景中创建一个 TriggerBox actor。

现在,我们需要添加一些代码来处理 TriggerBox actor 的重叠事件。在 TriggerBox.cpp 文件中,添加以下代码:

void ATriggerBox::OnOverlapBegin(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult)
{
    // 在此处理重叠事件的开始
}

void ATriggerBox::OnOverlapEnd(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex)
{
    // 在此处理重叠事件的结束
}

这将在 TriggerBox actor 与其他 actor 重叠时调用 OnOverlapBegin() 函数,并在 TriggerBox actor 与其他 actor 不再重叠时调用 OnOverlapEnd() 函数。

现在,我们需要编译项目。在 Visual Studio 中,按 F5 键或单击“生成”>“生成解决方案”菜单项。

编译完成后,我们可以运行项目。在 Visual Studio 中,按 F5 键或单击“调试”>“启动无调试”菜单项。

项目运行后,我们可以看到 TriggerBox actor 已经添加到场景中。我们可以将其他 actor 拖放到 TriggerBox actor 上来触发重叠事件。

在本教程中,我们学习了如何创建和使用 C++ TriggerBox 类来触发重叠事件。