关闭

虚幻4 Editor 编程

910人阅读 评论(0) 收藏 举报
分类:

有时候我们需要在写一些工具产生一些程序需要的文档,给自己或者给策划使用。

虚幻给我们提供了接口可以增加编辑器的功能。


在创建完一个C++工程以后,新建RegisterToMainMenu()函数,在StartupModule()里面调用。

用来给主菜单注册功能。


TSharedRef<SDockTab> SpawnEditorWindow(const FSpawnTabArgs& Args)
{
return SNew(SDockTab)
.Icon(FEditorStyle::GetBrush("Persona.ImportMesh.Small"))
.TabRole(ETabRole::NomadTab)
.Label(NSLOCTEXT("RoleEditor", "TabTitle", "Edit Role"))
[
SNew(SEditorWindow)
];
}


void FMyEditor::RegisterToMainMenu()
{

FGlobalTabmanager::Get()->RegisterNomadTabSpawner("RoleEditorTabId", FOnSpawnTab::CreateStatic(&SpawnEditorWindow))
.SetDisplayName(NSLOCTEXT("UnrealEditor", "RoleEditorTab", "Edit Role"))
.SetTooltipText(NSLOCTEXT("UnrealEditor", "RoleEditorTabTooltipText", "Open the Edit Role tab."))
.SetGroup(WorkspaceMenu::GetMenuStructure().GetToolsCategory())
.SetIcon(FSlateIcon(FEditorStyle::GetStyleSetName(), "Persona.ImportMesh.Small"));

}

这样就已经在主菜单里面注册了一个按钮,当点击按钮时候,会创建一个SEditorWindow窗口,当然这个类我们还没有实现,所以编译不会通过。

下面我们就来创建这个窗口类。


class ***EDITOR_API SEditorWindow: public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(SEditorWindow)
{}
SLATE_END_ARGS()
/** Constructs this widget with InArgs */
void Construct(const FArguments& InArgs);
};

这是头文件,我是继承了 SCompoundWidget,也可以继承其他的SLATE类,可以尝试一下。


void SEditorWindow::Construct(const FArguments& InArgs)
{
ChildSlot
[
SNew(SImage);
];

}

这里初始化函数我只创建了一个透明图片。可以随意画东西了。



现在虚幻可以直接界面上创建PLUGIN控制EDITOR功能了,推荐使用Plugin,以后可以拖到其他工程里面使用。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:87399次
    • 积分:1754
    • 等级:
    • 排名:千里之外
    • 原创:89篇
    • 转载:9篇
    • 译文:0篇
    • 评论:17条
    最新评论