在Unity3D里使用WinForm

Posted jeason1997

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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编辑器

 

以上是关于在Unity3D里使用WinForm的主要内容,如果未能解决你的问题,请参考以下文章

在unity3d里无法移动物体

在unity3d里怎样隐藏物体

unity3d里菜鸟在线怎么给动态添加的物体添加贴图?

怎么把unity3d里导入的不同的模型组合在一起

在unity3d里怎么做进度条

关于unity3d中prefabs的问题 初学者