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

  1. 创建一个继承自SCompoundWidget的自定义窗口类,例如MyEditorWindow。在这个类中,实现你想要的窗口的布局和逻辑。
class MyEditorWindow : public SCompoundWidget
{
public:
    SLATE_BEGIN_ARGS(MyEditorWindow) {}
    SLATE_END_ARGS()

    void Construct(const FArguments& InArgs)
    {
        // 构建窗口的布局和逻辑
        ChildSlot
        [
            // 添加你的控件和逻辑
        ];
    }
};
  1. 在你想要打开窗口的地方,使用FSoftObjectPath加载窗口的资源。
FSoftObjectPath WindowPath(TEXT("/Game/Path/To/MyEditorWindow.MyEditorWindow"));
TSubclassOf<UUserWidget> WindowClass = Cast<UUserWidget>(WindowPath.TryLoad());

if (WindowClass)
{
    // 创建窗口实例
    UWorld* World = GEditor->GetEditorWorldContext().World();
    if (World)
    {
        FWidgetDelegates::GetOnWidgetOpened().Broadcast(WindowClass, EToolkitMode::Standalone, TSharedPtr<IToolkitHost>());
    }
}

注意,以上代码中的WindowPath应替换为你自己窗口资源的路径。

  1. 编译并运行你的项目,然后在适当的地方调用上述代码,即可打开你的自定义窗口
在unreal中如何在c++中通过FSoftObjectPath打开一个EditorWindow

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

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