编辑器下获得UWorld
,代码
GEditor->GetEditorWorldContext().World()
刚开始一直以为没有引入GEditor
的模块
不断的测试发现GetEditorWorldContext()
也需要
引入模块UnrealEd
考虑到Package
的时候,在Runtime
模式下引入UnrealEd
会出现错误如下
ERROR: Unable to instantiate module 'UnrealEd':
Unable to instantiate UnrealEd module for non-editor targets.
因此可以考虑使用
GWorld->GetWorld()
这样就不需要引入"UnrealEd"模板
// 或者考虑如下写法
// 引入Target.bBuildEditor 判断当前模板的类型,选择性的引入模块
if (Target.bBuildEditor)
{
PublicDependencyModuleNames.AddRange(
new string[]
{
"UnrealEd",
// ... add other public dependencies that you statically link with here ...
}
);
}
PublicDependencyModuleNames.AddRange(
new string[]
{
"Core",
"Projects",
"SQLiteCore",
"SQLiteSupport",
// ... add other public dependencies that you statically link with here ...
}
);
PrivateDependencyModuleNames.AddRange(
new string[]
{
"CoreUObject",
"Engine",
"Slate",
"SlateCore",
"Projects",
"RenderCore",
"RHI",
// ... add private dependencies that you statically link with here ...
}
);