就只是想扩展下编辑器而已……这在unity很方便,有专门的UnityEditor命名空间,ue4里就有点麻烦了。网上找到的很多中文资料就贴你妈一堆依赖关系也没有,变量定义也没有,什么都没有的代码。所以屁用都没有。
当然还是有些资料其实说得很完整的,怪我自己缺乏认知所以最开始没看懂那些看起来很复杂的。
总之,核心学习思路是,UE4官方的源码!
这是因为,在UE4里,“菜单栏扩展”,“菜单栏子项扩展”和“编辑器工具栏扩展”,是类似的操作。学会了其中一个的编写方式就能学会其它的。
而UE4自带的添加插件的功能,其中就有可以在工具栏中直接显示的“编辑器工具蓝按钮”插件。所以,就以它的源码为研究学习的对象吧!
最后发现写得比较完整的参考资料:
通过插件构建编辑器扩展: ;;;
没有通过插件,但是总体和插件过程相似的编辑器扩展脚本: https://www.bilibili.com/read/cv5529328;
过程写得不清不楚但具体细节还是有用的:https://zhuanlan.zhihu.com/p/129708783
虚幻4社区点醒我的QA:https://answers.unrealengine.com/questions/587450/view.html
添加“编辑器工具栏按钮”插件
步骤就是Edit - Plugin - create,我是中文版懒得切换英文了,大概就是这几个意思的英文。“编辑 - 插件 - 创建插件”,选择图中所示的“编辑器工具栏按钮”。随便取你记得住的名字。
然后,ue4就会帮你添加插件的代码到项目的目录下了。过程有点慢,耐心等待后,会发现大致如下图的文件结构。
是啊,我的工程叫LearnWwise,但却是学UE4的一篇文章。是啊,我虽然在写怎么加编辑器扩展,但插件名字却是Slate相关的东西。
我的插件名叫MySlateTest2,总之会在非引擎部分的Games文件夹的Plugins中,添加一个插件名的文件夹,Resource里面可以放你会用上的按钮图标,重点在于Source和.uplugin文件。
后者打开会发现它是经典的虚幻4的各种声明,记录这个“小项目”的属性。
前者包含了三种文件和一个标配Build.cs,{PluginName}Commands的文件用来继承TCommands类,注册插件行为、绑定Style文件。{PluginName}文件包含了插件行为和位置的定义。{PluginName}Style则有插件外观的定义。
{PluginName}.cpp
(暂时先写到这儿了,其实已经可以自己开始按上面操作新建一个出来看源码了)