在Unity3D里使用WinForm
之前给一个游戏写过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编辑器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!