UE4 在 PIE 中运行时显示 Actor 组件

UE4 Display Actor Components at Runtime in PIE

我在运行时创建并附加一些 actor 组件,稍后在播放时销毁它们。

我想在 PIE 运行时查看演员有哪些组件。

我已经试过勾选Details面板的View options中的Show Actor Components显示组件,但是好像只显示场景组件,并没有刷新正确查看(我必须选中然后取消选中 Selected Actor Only 才能让生成的演员显示所有场景组件)。

有没有办法显示它们?

你能告诉我你使用的是 C++ 还是蓝图?

如果您使用的是 C++,则可以创建一个方法来显示 Actor 中的现有组件。您可以使用方法 GetComponents 获取 class UActorComponent 的所有组件,因为所有 Unreal Engine 的组件都继承来自这个Class。然后您可以检查他们的 classes 并打印名称和 class 例如。

这是一个代码示例:

void AMyActor::ShowMyComponents() {
    TArray<UActorComponent*> MyArray;

    GetComponents(UActorComponent::StaticClass(), MyArray, true);
    for (auto element : MyArray) {
        UE_LOG(LogTemp, Error, TEXT("Component  : %s is from class : %s"), *element->GetName(), *element->GetClass()->GetName());
    }
}

您可以在 BeginPlay()Tick() 或任何您想要的地方调用此方法,它会向您显示演员的组件。