【UE4】编辑器开发(二)ContentBrowser拓展

ContentBrowser

后边会用到ContentBrowser模块,先获取此模块。

//模块获取
FContentBrowserModule& ContentBrowserModule = FModuleManager::LoadModuleChecked<FContentBrowserModule>("ContentBrowser");

//ContentBrowser模块的可拓展菜单,下面将介绍常用的部分,剩余拓展相似。
ContentBrowserModule.GetAllAssetContextMenuExtenders();
ContentBrowserModule.GetAllAssetViewContextMenuExtenders();
ContentBrowserModule.GetAllAssetViewViewMenuExtenders();
ContentBrowserModule.GetAllCollectionListContextMenuExtenders();
ContentBrowserModule.GetAllCollectionViewContextMenuExtenders();
ContentBrowserModule.GetAllPathViewContextMenuExtenders();

//命令拓展
ContentBrowserModule.GetAllContentBrowserCommandExtenders();
//拖拽拓展
ContentBrowserModule.GetAssetViewDragAndDropExtenders();

一、创建资源菜单

在ContentBrowser右侧空白区域右击鼠标显示的菜单拓展,即新建资源菜单的拓展。
先展示效果:
ContentBrowser新建资源菜单效果

//获取菜单的拓展项委托数组
auto& ACMExtenders = ContentBrowserModule.GetAllAssetContextMenuExtenders();
//添加因为拓展项委托
ACMExtenders.Add(FContentBrowserMenuExtender_SelectedPaths::CreateRaw(this, &FStandaloneWinModule::ACMExtender));
//参数是用户右击鼠标时的目录地址,返回值是拓展项
TSharedRef<FExtender> FStandaloneWinModule::ACMExtender(const TArray<FString>& Paths)
{
	//创建拓展项
	TSharedPtr<FExtender> Extender = MakeShareable(new FExtender());
	//设置拓展项参数,我们这里绑定了一个菜单项委托
	Extender->AddMenuExtension("ContentBrowserNewAdvancedAsset", EExtensionHook::After, PluginCommands, FMenuExtensionDelegate::CreateRaw(this, &FStandaloneWinModule::AddMenuExtension));
	return Extender.ToSharedRef();
}

二、选中资源菜单

选中资源菜单拓展

auto& AVCMExtender = ContentBrowserModule.GetAllAssetViewContextMenuExtenders();
AVCMExtender.Add(FContentBrowserMenuExtender_SelectedAssets::CreateRaw(this, &FStandaloneWinModule::AVCMExtender));
//参数是选中的资源列表,后边不再赘述委托方法,参数可以参考委托声明
TSharedRef<FExtender> FStandaloneWinModule::AVCMExtender(const TArray<FAssetData>& AssetData)
{
	TSharedPtr<FExtender> Extender = MakeShareable(new FExtender);
	FContentBrowserModule& ContentBrowserModule = FModuleManager::LoadModuleChecked<FContentBrowserModule>("ContentBrowser");
	Extender->AddMenuExtension("AssetCode", EExtensionHook::After, PluginCommands, FMenuExtensionDelegate::CreateRaw(this, &FStandaloneWinModule::AddMenuExtension));
	return Extender.ToSharedRef();
}

三、ViewOptions菜单

ViewOptions菜单

auto& AVVMExtenders = ContentBrowserModule.GetAllAssetViewViewMenuExtenders();

在ViewOption中添加一个Viewport的UI拓展项
ViewOption拓展项

四、Collections面板选中Tags菜单

选中Tags菜单

auto& CCMExtenders = ContentBrowserModule.GetAllCollectionListContextMenuExtenders();

五、Collections面板添加Tags菜单

添加Tags菜单

auto& CVCMExtenders = ContentBrowserModule.GetAllCollectionViewContextMenuExtenders();

六、ContentBrowser目录(文件夹)菜单

目录菜单
目录菜单

auto& PVCMExtenders = ContentBrowserModule.GetAllPathViewContextMenuExtenders();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章