在Unreal Engine中,可以通过以下步骤在C++中使用FSoftObjectPath打开一个EditorWidget:

  1. 在你的C++类中,包含以下头文件:
#include "Widgets/SWidget.h"
#include "Editor/EditorWidgets/Public/EditorWidgets.h"
  1. 在你的C++类的成员变量中声明一个FSoftObjectPath对象,用于存储EditorWidget的路径:
FSoftObjectPath EditorWidgetPath;
  1. 在你的C++类的构造函数或初始化函数中,设置EditorWidget的路径:
EditorWidgetPath = FSoftObjectPath(TEXT("/Game/Path/To/EditorWidgetBP.EditorWidgetBP_C"));

在上面的代码中,将/Game/Path/To/EditorWidgetBP.EditorWidgetBP_C替换为你EditorWidget的路径。

  1. 在需要打开EditorWidget的地方,使用以下代码加载并打开EditorWidget:
if (EditorWidgetPath.IsValid())
{
    UEditorWidget* EditorWidget = Cast<UEditorWidget>(EditorWidgetPath.TryLoad());
    if (EditorWidget)
    {
        TSharedPtr<SWidget> Widget = EditorWidget->TakeWidget();
        if (Widget.IsValid())
        {
            // 在这里使用Widget打开EditorWidget
        }
    }
}

在上面的代码中,我们首先使用EditorWidgetPath.TryLoad()加载EditorWidget的蓝图对象。然后,我们使用Cast<UEditorWidget>将加载的对象转换为我们的UEditorWidget类。

最后,我们使用EditorWidget->TakeWidget()获取EditorWidget的SWidget,并在需要的地方使用它打开EditorWidget。

请注意,以上代码中的UEditorWidgetEditorWidgetBP是示例类和蓝图的名称,你需要根据你的实际情况进行替换。

希望以上信息能够帮助到你

在unreal中如何在c++中通过FSoftObjectPath打开一个EditorWidget

原文地址: https://www.cveoy.top/t/topic/hNVt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录