问题描述: Sequencer工具栏上后增加定制按钮,如图所示:

红框按钮后新增定制按钮。

寻找解决办法:商城上有一个插件是Substance Source,安装上之后可以看到如下界面:

跟我们的需求一致,那么就看下它是如何实现的。

virtual void StartupModule() override
{...//Creates the button above the scene viewport to launch source windowCreateToolbarButton();...
}
void CreateToolbarButton(){FSubstanceSourceModuleCommands::Register(); //// Bind commandCommandList = MakeShareable(new FUICommandList);struct Local{static void AddToolbarButton(FToolBarBuilder& ToolbarBuilder){//NOTE:: Leave spacing in names for auto padding - Might be benificial to alter this later to lock in a solid size//and to remove string sizeToolbarBuilder.AddToolBarButton(FSubstanceSourceModuleCommands::Get().LaunchSubstanceSourceWindow,NAME_None,FText::FromString("   Source   "),FText::FromString("   Source   "),FSlateIcon("SubstanceSourceStyle", "SubstanceSourceButtonIcon"));}};const FSubstanceSourceModuleCommands& Commands = FSubstanceSourceModuleCommands::Get();TSharedPtr<FExtender> ToolbarExtender = MakeShareable(new FExtender);ToolbarExtender->AddToolBarExtension("Content",EExtensionHook::After,CommandList,FToolBarExtensionDelegate::CreateStatic(&Local::AddToolbarButton));CommandList->MapAction(Commands.LaunchSubstanceSourceWindow,FExecuteAction::CreateRaw(this, &FSubstanceSourceModule::OnLaunchSubstanceSourceWindow),FCanExecuteAction());FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>("LevelEditor");LevelEditorModule.GetToolBarExtensibilityManager()->AddExtender(ToolbarExtender);}

这个有几个点:

大部分的编辑器的ToolBar都支持扩展的,想知道该ToolBar是否支持扩展,可看下这个模块是否有提供类似于GetToolBarExtensibilityManager类似的函数,这个ExtensManager是在Toolbar构建的时候传入的,这样就支持了Toolbar扩展。举例看下LevelEditor的Toolbar构建时的代码:

FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>("LevelEditor");
TSharedPtr<FExtender> Extenders = LevelEditorModule.GetToolBarExtensibilityManager()->GetAllExtenders();static const FName LevelEditorToolBarName = "LevelEditorToolBar";
FToolBarBuilder ToolbarBuilder( InCommandList, FMultiBoxCustomization::AllowCustomization( LevelEditorToolBarName ), Extenders );

那么我们需要做的就是构建FExtender内容,获取到指定模块的ExtendsManager,然后执行AddExtender操作就可以了。

构建Extender主要是构建扩展的是按钮的样貌,点击后的响应,还是就是添加到哪个Section后面,SubstanceSource上的按钮是放在了“市场”后面,“市场”属于“Content”Section.(可以通过看下编辑器Toolbar构造代码可以知道按钮属于哪个Section以及Section的名字)。

就这些内容。

UE4编辑器ToolBar扩展相关推荐

  1. [unreal4入门系列之八] 使用VS编译UE4编辑器并添加物体到场景中

    接下来,我们将会创建一个放置我们的游戏角色的基本场景. 编译UE4编辑器 1) 现在,我们创建一个空白的UE4项目来开始.首先点击桌面的Epic Games Launcher,打开启动器,点击左上角的 ...

  2. UE4 编辑器代码中如何区分不同的客户端窗口(UE4多开窗口)?

    众所周知,UE4 可以在设置中进行窗口多开,即同时开启不超过10个客户端和一个DS,那么多开的窗口是不是多个线程,如何编写这种多窗口下的逻辑代码呢? 多开的窗口不是多线程,而是多个继承GameInst ...

  3. 「Unity3D」(9)自定义编辑器菜单扩展总结

    添加菜单 [MenuItem("Tools/MyOption")] private static void MyOption() {// 自定义菜单Tools } [MenuIte ...

  4. UE4 编辑器内修改贴图分辨率

    在DCC美术流程中,将相应贴图导出后,在PS等DCC工具中修改贴图分辨率尺寸,再导入回UE4中. UE4编辑本身支持修改贴图分辨率. 注:图片分辨率必须为2的n次方 :2/4/8/16/32/64/1 ...

  5. (四)UE4编辑器菜单按钮

    1. 主菜单的按钮 参考https://alanwalk.github.io/2018/04/17/how-to-add-ue4-editor-menu/ 2. Tab上的按钮 3. Tab上的菜单怎 ...

  6. UE4 编辑器下修改蓝图类继承的父类 ReparentBlueprint C++

    一.添加代码,修改蓝图类继承的父类 .cpp #include "Kismet2/BlueprintEditorUtils.h" #include "Kismet2/Ki ...

  7. UE4编辑器语言设置

    语言设置 Edit(编辑)-->Editor preferences(编辑器偏好设置)-->Region&Language(区域&语言)

  8. unity3d编辑器界面扩展,编辑状态下显示选择对象的所有脚本组件代码内容

    转载自:http://blog.csdn.net/andyhebear/article/details/47833383 using UnityEngine; using UnityEditor; u ...

  9. UE4 编辑器中批量修改模型参数

    在内容浏览器中,选中多个模型文件,右键 Asset Actions - Bulk edit via Property Matrix 在弹出的面板中选择相应的参数,调整即可

  10. (UE4 4.21 ) UE4给编辑器添加菜单栏(Menu),工具栏(TooBar),Tab窗口

    前言 在UE4中存在大量的菜单栏和工具栏.如下面所示 本质上上面都是菜单栏和工具栏. 菜单(Menu)的扩展点(ExtendPoints) 在Edit->Editor Preferences-& ...

最新文章

  1. System.Web.Caching.Cache类 缓存 各种缓存依赖
  2. java cacheutil_Java 常用缓存Cache机制的实现
  3. 数据结构实验之排序四:寻找大富翁
  4. php urledcode_攻防世界 php 2 函数urldecode 使用说明
  5. Gnuplot的简介与常用操作
  6. java如何实现下载_java 如何实现下载功能
  7. 杭电多校HDU 6586 String(预处理 + 贪心)题解
  8. JavaScript学习(七)
  9. 批处理for命令截取字符串
  10. 客户价值度和活跃度建模
  11. 新概念英语(第一册)复习(原文及全文翻译)——Lesson 61 - Lesson 90
  12. j计算机屏幕关闭时间,win7如何设置自动关闭电脑屏幕的时间?
  13. 中学信息技术教师资格证编程题
  14. Android使用bit.ly的api获取url 短连接
  15. java集成华为推送
  16. QuadrotorFly-四旋翼无人机动力学仿真环境介绍
  17. BEC商务英高频词汇
  18. 国学堂—梁冬对话林曦
  19. 为什么iPhone拍照更好看
  20. 标签条码打印软件如何设置打印区域

热门文章

  1. 大智慧开计算机就如何自动开启,大智慧通达信选股突然变慢
  2. matlab的HDLcoder,matlab中hdl coder 的使用
  3. 拼多多参谋:拼多多隐私号是什么意思?拼多多隐私号怎么查看真实号码?
  4. linux授读写权限,Linux系统中,设定资料读写权限
  5. python--基础知识点--继承、多态、鸭子类型
  6. 文科专业考计算机专业研究生,跨专业文科生考计算机研究生的经验
  7. Switch 块、Switch 表达式、Switch 模式匹配,越来越好用的 Switch
  8. 入门物联网还得靠嵌入式
  9. python 小说 云_Python 爬虫之网络小说下载
  10. 【React源码】(十八)React 算法之调和算法