看完能得到什么?
能在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 自定义编辑器(六)