【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();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章