前言
大概是去年还没开学的时候,提前到校,给老师干活拿到的需求,可能也跟我说对unity3D有兴趣有关系吧。总之就是unity3D做模拟环境,但是呢,要嵌入要其他的软件中去使用,窗口环境,也就是题目上的那几种,Winform、MFC。
先写一写印象中的思路,代码还要再找找…电脑数据丢过,不太好找到了。
就在这个时候…我翻了一下聊天记录,梳理了思路。
unity嵌入Winform
在winform中可以嵌入unity专用插件
unity相对路径的设置
大家都知道,在插件初始化的时候,会直接加载完成这个插件的内容,也就是说,如果直接用插件本身去读取unity,需要使用绝对路径,这样就无法实现分布式了,肯定是不能直接提交给上级的。
所以,思路大概是这样的,首先在界面中加入一个窗口的控件,在这个空间里加载一个UnityWebPlayer Control,由于是在空白控件上生成一个新的控件,所以可以在代码中对unity路径进行设置,也就实现了相对路径。
也可借鉴WinFrom内嵌Unity3D
具体代码找不到了…只有一部分PPT讲解时候的记录
private void InitUnity()
{
var unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();
((System.ComponentModel.ISupportInitialize)(unity)).BeginInit();
Controls.Add(unity);
((System.ComponentModel.ISupportInitialize)(unity)).EndInit();
unity.src = Application.StartupPath + "\\u.unity3d"; //改成自己想要的路径
AxHost