永发信息网

unity嵌入winform中后,如何在点击winform窗口之后再重获unity的焦点?

答案:1  悬赏:0  手机版
解决时间 2021-11-17 22:58
  • 提问者网友:箛茗
  • 2021-11-17 16:07
unity嵌入winform中后,如何在点击winform窗口之后再重获unity的焦点?
最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-11-17 16:32
unity作为游戏引擎在3D端的开发优势不言而喻,unity开发3D虚拟产品的市场占有率几乎80%。但是作为物流教学仿真产品或者其他行业仿真产品的展现层面,我们发现游戏化的UI和业务系统的UI还是有一定的差别,很多的用户还是比较习惯WinForm或者WPF中的UI形式,游戏化的UI适合单独功能展现,而业务系统的UI更侧重数据间的逻辑与分析的展现,,我们需要的就是这种业务化的UI交互。
于是在网上搜了一下WinForm和Unity3D如何集成,有人给出了使用WebBrowser控件的形式,这种形式之前在做公司3D产品WEB版转换时使用过,不管是嵌入winform的方式以及嵌入后unity与winform的通信都遵循webplayer的u.getUnity().SendMessage和Application.ExternalCall那一套,用起来还算相当方便的。但是unity5.0以后抛弃webpalyer了。
嵌webplayer方式肯定走不通了,除非你继续用unity4.6。有了另外一种思路,winform的窗体打包成动态链接库,然后在unity中调用自己打包的dll。界面用winform做好,打包动态链接库,导入unity,调用,确实行的通。通信有两种方式,一种是通过委托,另外一种是winform中引用unityEngine.dll后直接使用sendmessage。很便捷的一种方案。
继续百度,发现了更好的一种方式,winform嵌入unity打包的exe,这种形式从展现层面使得3D场景和业务系统界面不再孤立,并且winform的开发与unity相互独立,只需要提前约定好通信协议。通信方式有好几种,win32窗口句柄、内存共享,socket通信,我们选择socket去搞了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯