在unreal中如何在c++中通过FSoftObjectPath打开一个EditorWindow
在Unreal Engine中,可以通过以下步骤在C++中使用FSoftObjectPath打开一个EditorWindow:
- 创建一个继承自SCompoundWidget的自定义窗口类,例如MyEditorWindow。在这个类中,实现你想要的窗口的布局和逻辑。
class MyEditorWindow : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(MyEditorWindow) {}
SLATE_END_ARGS()
void Construct(const FArguments& InArgs)
{
// 构建窗口的布局和逻辑
ChildSlot
[
// 添加你的控件和逻辑
];
}
};
- 在你想要打开窗口的地方,使用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应替换为你自己窗口资源的路径。
- 编译并运行你的项目,然后在适当的地方调用上述代码,即可打开你的自定义窗口
原文地址: https://www.cveoy.top/t/topic/hNVL 著作权归作者所有。请勿转载和采集!