就只是想擴展下編輯器而已……這在unity很方便,有專門的UnityEditor命名空間,ue4里就有點麻煩了。網上找到的很多中文資料就貼你媽一堆依賴關系也沒有,變量定義也沒有,什么都沒有的代碼。所以屁用都沒有。
當然還是有些資料其實說得很完整的,怪我自己缺乏認知所以最開始沒看懂那些看起來很復雜的。
總之,核心學習思路是,UE4官方的源碼!
這是因為,在UE4里,“菜單欄擴展”,“菜單欄子項擴展”和“編輯器工具欄擴展”,是類似的操作。學會了其中一個的編寫方式就能學會其它的。
而UE4自帶的添加插件的功能,其中就有可以在工具欄中直接顯示的“編輯器工具藍按鈕”插件。所以,就以它的源碼為研究學習的對象吧!
最后發現寫得比較完整的參考資料:
通過插件構建編輯器擴展: https://blog.csdn.net/qq_40947718/article/details/115540706;https://www.cnblogs.com/zsymdbk/p/14720424.html;https://blog.csdn.net/u013412391/article/details/107891152;
沒有通過插件,但是總體和插件過程相似的編輯器擴展腳本: 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
(暫時先寫到這兒了,其實已經可以自己開始按上面操作新建一個出來看源碼了)