winForm窗体嵌入U3d

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winForm窗体嵌入U3d相关的知识,希望对你有一定的参考价值。

最近新做一项目,需要winForm框架嵌入u3d,并且实现交互。从网上搜了各种资料,总结了三种方法:

1、直接打开exe程序

System.Diagnostics.Process.Start(@"D:\Demo\Demo1020.exe");

缺点:u3d不嵌入到窗体 而是单独的打开。

优点:算是优点吧,画面还是比较流畅的

2、用网上封装好的方法嵌入窗体

可以看这里的实现 代码就不自己贴了 嫌麻烦 http://blog.csdn.net/lisenyang/article/details/18303971

缺点:a画面很不流畅,可以说会出现卡死的情况,如果u3d有自动动画效果,嵌入之后完全看不到。

    感觉这是封装的方法的问题,但是本人太菜 不会改。。。

   b无法自适应外部窗体的大小 感觉应该也是可以改 哈哈 期待大牛

优点:嵌入到窗体了,初步效果算是实现了

以上两种交互 网上有一种说用串口通信、有一种用管道(管道不熟悉所以放弃了) 此处我采用的是socket通信。感觉有些大材小用了,但是却又实在不知道怎么通信好,所以用的socket。winForm作为服务器端,u3d作为客户端

3、使用UnityWebPlayer控件

这也是搜索时最常见的一种了

http://blog.csdn.net/xxdddail/article/details/49890643 这个帖子写的还算挺好的,对于后期的交互。这个是我弄完之后搜到的,感觉还不错

缺点:可能就算是要安装插件了吧

优点:比较好的嵌入,毕竟是自家的控件了嘛,所以嵌入的效果还是不错。u3d随窗体最大化改变大小问题 解决~画面不流畅问题 解决~ 嵌入问题 解决~ 

  Ok,剩下的就是通信了,通信 unityWebPlayer 有个Application.ExternalCall方法 ,winForm这边也有相同的发送方法 _axUnityWebPlayer.SendMessage 接收时调用_axUnityWebPlayer_OnExternalCall事件就可以了。

以上是关于winForm窗体嵌入U3d的主要内容,如果未能解决你的问题,请参考以下文章

winForm窗体嵌入U3d

我想做一个在winform窗体里嵌入EXCEL,做出来的一直是另外窗口打开EXCEL那个文件,各位帮忙看看问题在哪捏

C# Winform WPF DeskBand 窗体嵌入任务栏,在任务栏显示文字

怎么把AutoCAD嵌入到c#Winform程序的一个窗体中

winform主窗体被子窗体影响而缩小?

Winform主窗体设计