【UE4】编辑器开发(一)关卡编辑器拓展

【UE4】编辑器开发(四)属性面板(Details)拓展 文章目录一、自定义类的属性面板二、自定义类属性设置 一个蓝图类会有一个属性面板,即Details面板。在编辑蓝图类或实例化蓝图类后,都可以编辑这个Details面板,下面第一节就是介绍如何自定义此面板内容。当一个蓝图类声明一个蓝图变量时,其Details面板会出现对应的属性设置,如何自定义这个属性设置的内容和样式就是第二节的内容。 下图是一个蓝图类的属性(Details)面板,其中的CustomC... 阅读详情
AI摘要

本文详细介绍了如何在UE4编辑器中通过FExtender对象拓展菜单栏、菜单和工具栏的功能,包括创建下拉菜单、分隔栏、分割线、子下拉菜单及自定义UI输入框等。

一、菜单栏或工具栏中创建拓展项

首先区分几个概念:MenuBar、Menu、Toolbar。
MenuBar:横向的可交互菜单项
ToolBar
Menu:纵向菜单
Menu
Toolbar:工具栏
Toolbar

在StartModule中创建拓展项
通过FExtender对象的三个方法可以分别绑定上述三种方法的拓展项。然后通过LevelEditorModule模块的GetMenuExtensibilityManager和GetToolBarExtensibilityManager方法获取并绑定拓展项以实现对菜单及Toolbar的拓展功能。

//加载LevelEditor模块,LevelEditor模块负责的就是打开UE4编辑器首先映入眼帘的各个编辑窗口。其中包括菜单栏、工具栏、视窗、详情面板、Modes面板、世界大纲面板等GUI功能。
FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked<FLevelEditorModule>("LevelEditor");
{
   
   	//创建菜单栏项
	//创建拓展
	TSharedPtr<FExtender> MenuBarExtender = MakeShareable(new FExtender());
	/**
	@Param FName ExtensionHook. 项所在位置
	@Param EExtensionHook::Position HookPosition. 更具体的表示在ExtensionHook的相对位置:Before、After、First
	@Param const TSharedPtr< FUICommandList >& CommandList. 触发命令
	@Param const FMenuBarExtensionDelegate& MenuBarExtensionDelegate. 单播委托。绑定一个方法,方法是关于返回拓展项的信息。
	*/
	MenuBarExtender ->AddMenuBarExtension("Help", EExtensionHook::After, PluginCommands, FMenuBarEtensionDelegate::CreateRaw(this, &FStandaloneWinModule::AddMenuBarExtension));
	//添加拓展项到关卡编辑器
	LevelEditorModule.GetMenuExtensibilityManager()->AddExtender(MenuBarExtender);
}
{
   
   	//创建菜单拓展项,就是菜单栏内的子项
	TSharedPtr<FExtender> MenuExtender = MakeShareable(new FExtender());
	MenuExtender->AddMenuExtension("WindowLayout", EExtensionHook::After, PluginCommands, FMenuExtensionDelegate::CreateRaw(this, &FStandaloneWinModule::AddMenuExtension));
	LevelEditorModule.GetMenuExtensibilityManager()->AddExtender(MenuExtender);
}
{
   
   	//创建工具栏拓展项
	TSharedPtr<FExtender> ToolBarExtender = MakeShareable(new FExtender());
	ToolBarExtender->AddToolBarExtension("Settings", EExtensionHook::After, PluginCommands, FToolBarExtensionDelegate::CreateRaw(this, &FStandaloneWinModule::AddToolBarExtension));
	LevelEditorModule.GetToolBarExtensibilityManager()->AddExtender(ToolBarExtender);
}

拓展想项委托方法
当编辑器启动后,会调用我们绑定到拓展项的委托方法以实现功能拓展,而调用方法的Builder则可以用于构建UI。三种常用的Builder分别是FMenuBarBuilder、FMenuBuilder、FToolBarBuilder分别对应开头讲的三种拓展菜单。

//此方法是创建一个菜单栏拓展项的委托方法,其它两个方法与此类似。
void AddMenuBarExtension(FMenuBarBuilder& Builder)
{
   
   
	//AddMenuEntry有多个重载方法。可以通过其设置显示文本、提示文本、图标等参数。
	Builder.AddMenuEntry(FStandaloneWinCommands::Get().OpenPluginWindow);
}

void AddMenuExtension(FMenuBuilder& Builder)
{
   
   
	Builder.AddMenuEntry(FStandaloneWinCommands::Get().OpenPluginWindow);
}

void AddToolbarExtension(FToolBarBuilder& Builder)
{
   
   
	//添加一个工具栏按钮
	Builder.AddToolBarButton(FStandaloneWinCommands::Get().OpenPluginWindow);
	//添加一个下拉菜单
	Builder.AddComboButton(
		FUIAction(), FOnGetContent::CreateRaw(this, &FAssetCheckToolModule::ToolbarPulldownExtension),
		LOCTEXT("PullDown", "Pull-down"),
		LOCTEXT("PullDownTip", "Pull-down Tip"),
		FSlateIcon(), true);
}

菜单栏拓展项:
创建菜单栏拓展项
创建的菜单拓展项:
菜单子项
工具栏拓展项:
工具栏子项
上面构建菜单栏、菜单和工具栏拓展项的显示参数分别使用FMenuBarBuilder、FMenuBuilder和FToolBarBuilder。他们的继承关系为:

UE4 使用蓝图进行编辑器扩展 1. 蓝图扩展 1.1 蓝图扩展工具 在Content Browser中创建一个EditorWidget,可以右键Run运行该资源,运行后,它就会出现在EditorUtilityWidgets类别下; 可以在新创建的widget添加按钮等控件,然后执行一定的逻辑; 比如,打印关卡中选中的actor名称,或者打印内容浏览器中选中的asset名称,都可以使用相应的节点得到选中的对象,然后print即可; 1.2 在编辑器中调用蓝图 对于继承自Actor类的蓝图,可以在函数或事件的detail面板中勾选Call 阅读详情

相关推荐

【虚幻引擎】UE4初学者系列教程基础篇-全中文新手入门教程(UE5系列继续更新)

菜单栏菜单栏当中有文件、编辑、窗口帮助。文件当中可以进行一个关卡的新建、关卡的打开、关卡的保存还有就是打包项目,(项目大于关卡,项目里面可能有几百个关卡),这是比较常用的几个,这里可以看到打包当中有安卓端HTML5端,IOS端linux,还有就是TVOS(苹果电视)、windows的一些端口的一些设置。还可以打开最近打开的项目。关卡编辑器:工具栏3.3 “模式”面板保存所有:ctrl+shift+s(有的软件截屏也是这个按键需要注意)3.4 “内容浏览器”面板缩放:ctr+鼠标滚轮3.5.视口面板。

qq_45206556的博客 2万+

UnrealEngine学习(02):虚幻引擎编辑器界面详解

好了,以上就是UE界面的整体布局和解释。个人认为基本上懂得各个选项的含义和功能就OK了,主要还是要多做,多动手。t=N7T8UnrealEngine学习(01):安装虚幻引擎https://blog.youkuaiyun.com/zuodingquan666/article/details/141539385。

zuodingquan666的博客 6254

[UnrealEngine] 虚幻引擎UE5地形入门指南 | UE5地形教程(UE5 Terrain)

本指南详细介绍了虚幻引擎中地形系统的使用流程。首先介绍了地形工具的三种模式(管理、雕刻、绘制)及基本操作。然后逐步演示了从新建FPS项目、创建地形、塑造地形形态到创建地形材质的全过程。重点讲解了如何通过图层混合节点实现不同材质的高度混合和权重混合,以及地形绘制的具体方法和常见问题解决。最后提供了优化技巧和外部工具推荐,如Houdini、WorldMachine等专业地形生成软件。全文通过图文并茂的步骤说明,帮助用户快速掌握虚幻引擎地形系统的核心功能,为创建高质量户外环境打下基础。

Unity3D Unreal 3650

UE4虚幻引擎开发手机游戏

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 该文章来自用户转载&a

mmqqyyqqyyq的博客 3263

[UnrealEngine] 虚幻编辑器界面 | 虚幻界面详解 | UE5界面详解

本文介绍了虚幻引擎编辑器界面的主要组成部分及其功能。核心内容包括:关卡编辑器作为主要开发环境,包含菜单栏、主工具栏、视口工具栏等功能区域;关卡视口显示3D/2D场景内容;大纲视图呈现层级结构;细节面板展示选中对象属性;内容侧滑菜单管理项目资源;底部工具栏提供实用工具。文章详细说明了各界面元素的用途,包括视口导航、变换工具使用、资源管理等功能,并配有图示说明各组件位置,适合虚幻引擎新手快速了解编辑器界面布局和基础操作。

Unity3D Unreal 1805

Unreal5从入门到精通之一文搞懂如何扩展蓝图编辑器

在Unreal Engine中,编辑器工具蓝图(Editor Utility Blueprint)是一种非常强大的工具,可以帮助开发者在编辑器中执行自定义任务。好了这篇文章就到这里,希望对你有所帮助。

TxNet 1543

Paho Asynchronous MQTT C Client Library--MQTTAsync API

异步MQTT 客户端库for C

yoyo勰的博客 1264

FPGA实战:手把手教你用Verilog实现Modbus CRC16校验(附完整代码)

本文详细介绍了在FPGA中实现Modbus RTU协议CRC16校验模块的完整实战方案。针对硬件设计中的时序、资源与性能挑战,文章从算法原理出发,提供了清晰的Verilog模块接口、状态机设计、查表ROM实现及优化策略,并附带了完整的可综合代码与测试平台,帮助工程师高效构建稳定可靠的工业通信系统。

weixin_29164185的博客 432

从零到一:手把手教你构建工业级Modbus转MQTT网关(STM32+ESP8266实战)

本文详细介绍了如何利用STM32和ESP8266构建工业级Modbus转MQTT网关,涵盖硬件选型、代码示例、协议转换及稳定性设计。重点解析Modbus RTU与MQTT协议对接阿里云物联网平台的实战步骤,确保数据可靠传输与长期稳定运行,为工业物联网应用提供完整解决方案。

u0v1w2x3的博客 684

[网络安全提高篇] 一二〇.恶意软件动态分析经典沙箱Cape批量提取动态API特征

这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文详细介绍动态分析沙箱Cape的安装过程,其是一个开源的自动恶意软件分析系统,通过自动运行和分析恶意软件,全面分析和提取恶意软件的关键特征。然而,当样本数量增加时,单个样本分析会降低效率。这篇文章将讲解如何实现Cape沙箱的批量分析,通过调用Python脚本文件来实施批量处理,并将分析结果存储在指定位置,最后补充submit.py的参数及Python调用方式。基础性文章,希望对您有帮助!

杨秀璋的专栏 4121

【深度学习】什么是交叉注意力机制?

输入序列:自注意力机制在同一个输入序列内建立注意力,交叉注意力机制在不同的输入序列间建立注意力。应用场景:自注意力机制多用于单一模态的任务(如纯文本任务),交叉注意力机制多用于多模态任务(如图像和文本的结合)。计算过程:自注意力机制的查询、键和值都来自同一个输入序列,而交叉注意力机制的查询来自一个输入序列,键和值来自另一个输入序列。

q742971636的博客 7368

YOLOv8改进,YOLOv8主干网络替换为FasterNet(全网独发手把手教学,助力涨点)

FasterNet的整体架构由四个分层阶段组成,每个阶段包含一组FasterNet模块,并在前面加一个嵌入或合并层。最后三层用于特征分类。每个FasterNet模块内部,一个PConv层后跟两个PWConv层,为了保持特征多样性并降低延迟,归一化和激活层仅在中间层之后进行,其中,PConv 是一种快速高效的卷积操作,通过仅对部分输入通道应用卷积滤波器,而保持其余通道不变,从而减少了计算量和内存访问。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2015

大疆视觉算法面试,手推极线几何这关刷掉了一半人

摘要:大疆机器视觉算法工程师面试重点考察目标检测工程优化、深度估计几何原理和视觉SLAM全流程。目标检测侧重模型压缩和部署优化,需掌握知识蒸馏、量化及算子融合;深度估计要求推导双目几何并理解单目深度恢复方法;视觉SLAM需熟悉前后端流程及ORB-SLAM3/VINS-Mono区别。面试常要求手推PnP等公式,注重实践能力。准备需重点练习公式推导和代码实现,掌握工程落地细节。

郑伟强dev的专栏 192

解决anaconda占用C盘空间过多问题

anaconda就算安装在其他盘,默认会把索引、锁定文件、压缩包等都放到系统盘(C盘),我用了两年,占用30GB。 1. 卸载不用的虚拟环境 查看已安装的虚拟环境 conda env list 卸载不用的、过期的虚拟环境 conda remove -n (要卸载的环境的名字) --all 2. 删除索引缓存、锁定文件、未使用过的包和tar包 conda clean -a 清理完之后,删除了15GB,还剩15GB,舒服了 ...

沉迷单车的追风少年 3万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: 【C++】Mutable关键字
下一篇: 【UE4】编辑器开发(二)ContentBrowser拓展
Im 胡嘿嘿
博客等级 码龄10年 148粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值