UE小計:頂部工具欄按鈕添加下拉列表,大綱列表、資源管理窗口右鍵添加按鍵

下拉列表

void FYouPluginsModule::StartupModule()
{FYouToolStyle::Initialize();FYouToolStyle::ReloadTextures();FYouToolCommands::Register();PluginCommands = MakeShareable(new FUICommandList);PluginCommands->MapAction(FYouToolCommands::Get().PackByCloudAction,FExecuteAction::CreateRaw(this,&FYouPluginsModule::OpenPakWidget),FCanExecuteAction());PluginCommands->MapAction(FYouToolCommands::Get().GenerateJSAction,FExecuteAction::CreateRaw(this,&FYouPluginsModule::GenerateJS),FCanExecuteAction());UToolMenus::RegisterStartupCallback(FSimpleMulticastDelegate::FDelegate::CreateRaw(this,&FYouPluginsModule::RegisterMenus));
}void FYouPluginsModule::RegisterMenus()
{FToolMenuOwnerScoped OwnerScoped(this);UToolMenu* ToolMenu = UToolMenus::Get()->ExtendMenu("LevelEditor.LevelEditorToolBar.User");{FToolMenuSection& Section = ToolMenu->AddSection("YouTool");Section.AddSeparator("YouToolSeparator");{FToolMenuEntry SettingEntry = FToolMenuEntry::InitComboButton("YouToolMenus",FUIAction(),FOnGetContent::CreateLambda([&]()->TSharedRef<SWidget,ESPMode::ThreadSafe>{FMenuBuilder MenuBuilder(true,PluginCommands);MenuBuilder.BeginSection("YouTool",LOCTEXT("Package Tool","Pack Asset Or Scene witch Cloud"));MenuBuilder.AddMenuEntry(FYouToolCommands::Get().PackByCloudAction);MenuBuilder.EndSection();return MenuBuilder.MakeWidget();}),LOCTEXT("YouToolMenu","YouTool"),LOCTEXT("YouToolMenuTooltip","Package Asset Or Scene"),FSlateIcon(FYouToolStyle::GetStyleSetName(),"YouTool"),false,"YouToolMenu");SettingEntry.StyleNameOverride = "CalloutToolbar";SettingEntry.SetCommandList(PluginCommands);Section.AddEntry(SettingEntry);}}
}

大綱列表

void AddCustomMenuEntry(FMenuBuilder& MenuBuilder)
{MenuBuilder.AddMenuEntry(FText::FromString("Editor UserData"),FText::FromString("Perform an action with the Editor UserData."),FSlateIcon(),FUIAction(FExecuteAction::CreateStatic([](){// 這里是當你的菜單項被點擊時要執行的代碼UE_LOG(LogTemp, Log, TEXT("Editor UserData clicked!"));})));
}TSharedRef<FExtender> OnExtendLevelEditorMenu(const TSharedRef<FUICommandList> CommandList, TArray<AActor*> SelectedActors)
{TSharedRef<FExtender> Extender(new FExtender());Extender->AddMenuExtension("ActorControl",EExtensionHook::After,CommandList,FMenuExtensionDelegate::CreateStatic(&AddCustomMenuEntry));return Extender;
}void FYourGameEditorModule::StartupModule()
{FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>("LevelEditor");auto& MenuExtenders = LevelEditorModule.GetAllLevelViewportContextMenuExtenders();MenuExtenders.Add(FLevelEditorModule::FLevelViewportMenuExtender_SelectedActors::CreateStatic(&OnExtendLevelEditorMenu));
}

資源管理窗口

TSharedRef<FExtender> FYourGameEditorModule::OnExtendContentBrowserAssetSelectiongMenu(const TArray<FAssetData>& SelectAssets)
{TSharedRef<FExtender> Extender(new FExtender());Extender->AddMenuExtension("CommonAssetActions",EExtensionHook::After,nullptr,FMenuExtensionDelegate::CreateRaw(this,&FYourGameEditorModule::MenuExtension,SelectAssets));return Extender;
}void FYourGameEditorModule::MenuExtension(FMenuBuilder& MenuBuilder, TArray<FAssetData> SelectAssets)
{MenuBuilder.AddMenuEntry(LOCTEXT("PakAssetTitle","Pak Asset"),LOCTEXT("PakAssetTooltipText","Pak Asset And Dependence"),//todo 增肌icon// FSlateIcon(FPakToolEditorStyle::GetStyleSetName(), "PakTool"),FSlateIcon(),FUIAction(FExecuteAction::CreateRaw(this,&FYourGameEditorModule::OnClickMenu,SelectAssets,false)));MenuBuilder.AddMenuEntry(LOCTEXT("PakAssetPIETitle","Pak Asset PIE"),LOCTEXT("PakAssetTooltipPIEText","Pak Asset And Dependence In Editor"),// FSlateIcon(FPakToolEditorStyle::GetStyleSetName(), "PakTool"),FSlateIcon(),FUIAction(FExecuteAction::CreateRaw(this,&FYourGameEditorModule::OnClickMenu,SelectAssets,true)));
}void FYourGameEditorModule::StartupModule()
{FContentBrowserModule& ContentBrowserModule = FModuleManager::LoadModuleChecked<FContentBrowserModule>(TEXT("ContentBrowser"));TArray<FContentBrowserMenuExtender_SelectedAssets>& MenuExtenderDelegates = ContentBrowserModule.GetAllAssetViewContextMenuExtenders();ContentBrowserAssetExtenderDelegate = FContentBrowserMenuExtender_SelectedAssets::CreateRaw(this,&FYourGameEditorModule::OnExtendContentBrowserAssetSelectiongMenu);MenuExtenderDelegates.Add(ContentBrowserAssetExtenderDelegate);ContentBrowserAssetExtenderDelegateHandle = MenuExtenderDelegates.Last().GetHandle();
}

本文由博客一文多發平臺 OpenWrite 發布!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/168233.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/168233.shtml
英文地址,請注明出處:http://en.pswp.cn/news/168233.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

web前端之引入svg圖片、html引入點svg文件、等比縮放、解決裁剪問題、命名空間、object標簽、阿里巴巴尺量圖、embed標簽、iframe標簽

MENU 前言直接在頁面編寫svg使用img標簽引入通過css引入使用object標簽引入其他標簽參考資料 前言 web應用開發使用svg圖片的方式&#xff0c;有如下幾種方式 1、直接在頁面編寫svg 2、使用img標簽引入 3、通過css引入 4、使用object標簽引入 直接在頁面編寫svg 在html頁面直接…

LeetCode Hot100 101.對稱二叉樹

題目&#xff1a; 給你一個二叉樹的根節點 root &#xff0c; 檢查它是否軸對稱。 代碼&#xff1a; class Solution {public boolean isSymmetric(TreeNode root) {if(rootnull || (root.leftnull && root.rightnull)) {return true;}//用隊列保存節點LinkedList<…

高防CDN在網站搭建中的優劣勢分析

隨著網絡攻擊的日益增多和惡性化&#xff0c;網站安全性成為網站搭建中至關重要的一環。高防CDN&#xff08;Content Delivery Network&#xff09;作為一種有效的安全防護手段&#xff0c;扮演著保護網站免受惡意攻擊的角色。本文將從網站搭建的角度&#xff0c;深入分析高防C…

vue3+ts+vite 打包報錯 TS2304: Cannot find name ‘xxx‘

都說vue組合式api好&#xff0c;那必須來一套試試&#xff0c;而且element ui的demo全是lang"ts"了 改成組合式api沒問題&#xff0c;但是當加上lang"ts"之后就瘋狂報錯 src/components/table/tableshow.vue:7:28 - error TS2304: Cannot find name tempsh…

【網易云商】構建高效 SaaS 系統的技術要點與最佳實踐

SaaS 是什么 定義 相信大家都對云服務中的 IaaS、PaaS、SaaS 早就有所耳聞&#xff0c;現在更是衍生出了 aPaaS、iPaaS、DaaS 等等的類似概念。對于 SaaS 也有各種各樣的定義&#xff0c;本文給出的定義是&#xff1a; SaaS 是一種基于互聯網提供服務和軟件的交付模式&#xf…

水果編曲軟件FL Studio21.2下載安裝教程

簡稱FL&#xff0c;全稱&#xff1a;Fruity Loops Studio&#xff0c;因此國人習慣叫它"水果"。目前最新版本(包括測試版本)是FL Studio21.2&#xff0c;它讓你的計算機就像是全功能的錄音室&#xff0c;大混音盤&#xff0c;非常先進的制作工具&#xff0c;讓你的音…

工業以太網交換機未來發展中的幾個趨勢

隨著工業自動化不斷發展和智能制造的推進&#xff0c;工業以太網交換機在未來的應用中將面臨更多的發展機遇和挑戰。在工業以太網交換機的未來發展中&#xff0c;有幾個方面將成為趨勢。 網絡虛擬化 隨著工業自動化系統規模的不斷擴展&#xff0c;網絡虛擬化將成為未來的發展方…

總結1065

今日共計學習11h47m&#xff0c;今日圖書館冷清了不少&#xff0c;在最后關頭&#xff0c;越學心里越沒譜。做22年的真題做到懷疑人生&#xff0c;真題每年難度不一&#xff0c;可以出的很難&#xff0c;也可以出得相對簡單。出的難的&#xff0c;計算量大肯定是其中一部分。今…

四、防火墻-NAT Server

學習防火墻之前&#xff0c;對路由交換應要有一定的認識 NAT Server1.1.基本原理1.2.多出口場景下的NAT Server1.3.源進源出 —————————————————————————————————————————————————— NAT Server 一般對用戶提供一些可訪問的…

Python開發運維:Django 4.2.7 使用Celery 5.3.5 完成異步和定時任務

目錄 一、實驗 1.Django使用Celery完成異步和定時任務 二、實驗 1. 如何查看Django版本 一、實驗 1.Django使用Celery完成異步和定時任務 (1)安裝Django (2)新建Django項目 (3)初始框架 (4)urls.py引用視圖views from django.contrib import admin from django.urls imp…

python之UDP網絡應用程序開發

文章目錄 版權聲明UDP網絡應用程序開發UDP初識UDP知識要點socket類的使用UDP發送數據開發流程分析UDP服務客戶端通信栗子UDP廣播發送 版權聲明 本博客的內容基于我個人學習黑馬程序員課程的學習筆記整理而成。我特此聲明&#xff0c;所有版權屬于黑馬程序員或相關權利人所有。…

CodeWhisperer 體驗總結

CodeWhisperer 體驗總結 | CodeWhisperer 是一款亞馬遜新推出的通用代碼生成器 可以實時進行代碼數據的提供 還可以定義安全問題 CodeWhisperer 對個人用戶是免費使用 企業用戶需要訂閱使用 亞馬遜云科技開發者社區為開發者們提供全球的開發技術資源。這里有技術文檔、開發案例…

Linux:配置Ubuntu系統的鏡像軟件下載地址

一、原理介紹 好處&#xff1a;從國內服務器下載APT軟件&#xff0c;速度快。 二、配置 我這里配置的是清華大學的鏡像服務器地址 https://mirrors.tuna.tsinghua.edu.cn/ 1、備份文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2、清空sources.list ec…

廣告機/商業顯示屏_基于MT8788安卓主板方案

安卓主板在廣告機領域扮演著重要的角色。無論是在商場、車站、酒店、電梯、機場還是高鐵站&#xff0c;LED廣告機廣泛應用&#xff0c;并通過不同方式進行播放和管理。 廣告機/商業顯示屏_基于MT8788安卓主板方案 基于MT8788安卓主板方案的廣告機采用了聯發科MT8788八核芯片方案…

國標直流充電槍9孔分別啥意思?

DC&#xff1a;直流電源正 DC-&#xff1a;直流電源負 PE&#xff1a;接地&#xff08;搭鐵&#xff09;S&#xff1a;通訊CAN-H S-&#xff1a;通訊CAN-L CC1&#xff1a;充電連接確認 CC2&#xff1a;充電連接確認 A&#xff1a;12V A-&#xff1a;12V- 以上就是國標直流充電…

線上ES集群參數配置引起的業務異常案例分析

本文介紹了一次排查Elasticsearch node_concurrent_recoveries 引發的性能問題的過程。 一、故障描述 1.1 故障現象 1. 業務反饋 業務部分讀請求拋出請求超時的錯誤。 2. 故障定位信息獲取 故障開始時間 19:30左右開始 故障拋出異常日志 錯誤日志拋出timeout錯誤。 故障之前…

BTC 復興:Ordinals 帶來創新活力,BitVM 與 BitStream 相繼問世

除了備受矚目的 ETF&#xff0c;今年 Bitcoin 生態迎來全新的發展活力和機遇。Ordinals 協議的橫空出世&#xff0c;以此為基礎誕生的 BRC20 協議給整個比特幣生態帶去了一波新的能量&#xff0c;迎來銘文熱度高漲。而諸如 BitVM、BitStream 等新技術甫一問世&#xff0c;便引發…

openssl+ RSA + linux 簽名校驗開發實例(C++)

文章目錄 一、RSA簽名校驗二、RSA簽名校驗開發實例 一、RSA簽名校驗 RSA簽名校驗是一種用于驗證數字簽名的過程&#xff0c;它確保簽名是由擁有相應私鑰的合法實體創建的。以下是RSA簽名校驗的理論知識點&#xff1a; RSA密鑰對&#xff1a; RSA簽名使用一對公鑰和私鑰。公鑰用…

RPCS3(PlayStation 3游戲模擬器)漢化教程

RPCS3 RPCS3 是一款PlayStation 3 模擬器&#xff0c;可讓 Windows、Linux 或 BSD 系統的用戶運行索尼 PlayStation 3 游戲。 安裝教程 包含 Windows/Linux版本 詳細安裝漢化教程請查看文章 RPCS3&#xff08;PS3模擬器&#xff09;安裝及漢化教程 1.首先下載最新版 RPCS3模…

classifier-free-guidance 擴散模型引導生成

淺談擴散模型的有分類器引導和無分類器引導 - 知乎這篇文章主要比較一下擴散模型的引導生成的三種做法的區別。它們分別是用顯式分類器引導生成的做法&#xff0c;用隱式無分類器引導的做法和用CLIP計算跨模態間的損失來引導生成的做法。 Classifier-Guidance: Diffusion Mode……