Unreal 自定义编辑器(二)

看完能得到什么?

能在EU4任意位置创建一个按钮!(当然了按钮的功能你来实现)

1、创建插件

首先我们利用UE4提供的自定义插件创建“编辑器工具栏按钮”,如何创建查看上篇Unreal 自定义编辑器(一)

2、分析代码结构

在这里插入图片描述
各个文件夹、MyPlugin.Build.cs、MyPlugin.uplugin的作用已经在上篇Unreal 自定义编辑器(一)中讲述了,这里主要来分析下Private、Public两个文件夹下的内容,Public对应的是Private的头文件

MyPluginStyle:
修饰我们创建的UI ,即创建一个样式!Style!

MyPluginCommands:
将命令对象与对应的事件绑定

MyPlugin:
插件的主要类,插件运行的主要逻辑,模块的开始、结束整个生命周期的管理

3、MyPluginStyle

1、查看头文件MyPluginStyle.h
在这里插入图片描述
2、主要关注下面几个方法的实现:
Initialize():初始化

Shutdown():结束时调用

Create():设置MyPlugin.PluginAction的样式

在这里插入图片描述
Initialize 创建了样式的实例并注册
Shutdown 注销样式,其中Reset()方法可以理解成是对该实例对象的一个彻底并且安全的销毁(“重置此共享指针,删除对对象的引用。如果该对象没有其他共享引用,则该对象将被销毁。”)
在这里插入图片描述
Create就是样式创建的方法,其中Set方法是将MyPlugin的PluginAction该对象绑定上“ButtonIcon_40x”这张图片,尺寸是 Icon40x40

4、MyPluginCommands

1、查看头文件MyPluginCommands.h
在这里插入图片描述
2、主要关注这个方法的实现:
RegisterCommands:将命令对象进行注册
在这里插入图片描述
将PluginAction与对按钮事件绑定,“MyPlugin”, “Execute MyPlugin action”分别对应按钮名、提示窗,如下如图所示
在这里插入图片描述

5、MyPlugin

1、先看一下头文件
在这里插入图片描述
2、主要关注下面几个方法的实现:
StartupModule:模块开始,主要做一些初始化工作

ShutdownModule:模块结束,主要做一些注销工作

RegisterMenus:将按钮添加到对应的位置,也是我们主要关注的方法

PluginButtonClicked:按钮的点击事件

在这里插入图片描述
上述代码折叠了一部分,也很重要但不是这节主要关注的!
主要看上面展示出来的部分,主要就是做了两件事:

1、将PluginAction对象与PluginButtonClicked点击事件绑定在一起

2、在模块启动后调用RegisterMenus这个方法

在这里插入图片描述
关闭模块的时候执行一些销毁动作

在这里插入图片描述
上述是我们这篇主要关注的,可以看见上面在两个地方添加了按钮分别是

1、LevelEditor.LevelEditorToolBar下面的Settings

2、LevelEditor.MainMenu.Window下面的WindowLayout

分别对应下面两个位置!
在这里插入图片描述
在这里插入图片描述

6、找到UI扩展点

我们怎么才能知道上面插入的位置分别指那里?勾选下面的选项
在这里插入图片描述
可以发现UE4从下面第一张图变成了第二张图
在这里插入图片描述
在这里插入图片描述
再来看看我们之前添加的按钮!

在这里插入图片描述
我们当前编辑器(也就是刚进来的界面就是LevelEditor,即场景编辑器,LevelEditorToolBar就是场景编辑器的工具栏!,最后获取下面的Settings!)是不是对上了!

在这里插入图片描述
另一个按钮同理(LevelEditor.MainMenu.Window场景编辑器下的“主菜单”的Window下面)

Unreal 自定义编辑器(一)
Unreal 自定义编辑器(二)
Unreal 自定义编辑器(三)
Unreal 自定义编辑器(四)
Unreal 自定义编辑器(五)
Unreal 自定义编辑器(六)

上述对应资源

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值