之前給一個游戲寫過MOD,功能大概是在游戲里可以打開一個編輯器,然后可以直接在編輯器里修改到游戲數據。
編輯器UI的實現部分,一開始用的是原生GUI,即OnGUI部分,這種方式雖然最簡潔,也不用引用任何外部庫,但是功能實在太少太局限,
很多UI組件都要自己手動去實現。
Unity內部雖然有完善的UGUI系統,但是UGUI的布局,是放在prefab上的(雖然也可以直接代碼寫UI,但是比較蛋疼),這樣的結果就是,你必須要
將UI布局打包為一個bundle,然后再加載它,也比較麻煩。
最后想,微軟自己有那么完善的WinForm UI框架,何不拿來利用一下,
目前有兩種實現方式:
1.直接將.net的System.Windows.Forms.dll跟System.Drawing.dll,引用到自己的項目,
這種方式比較簡單粗暴,可以直接利用VS的編輯器設計UI,然后U3D可以直接調用,
缺點是由於調用的是系統的繪圖庫,所以只能在win平台,而且,調用WinForm,實際上上重新打開一個新的窗口
2.利用現有的開源庫:
有個人將WinForm的Drawing部分,直接重寫,變成跨平台的,而且,畫出的UI,直接是與游戲在同一個窗口的
缺點是,由於組件部分不少被修改過,VS的編輯器無法識別,導致無法利用UI編輯器