winform下展示Unity3D文件可以支持對Unity3D實現的模塊進行包裝,以及在其他的項目中需要展示Unity3D的界面時候,恰到適宜地進行打開展示,這里我展示如何使用winform打開Unity3D文件。
一、在Unity的官網下載並安裝Unity
安裝完成后的目錄如下:


二、在Unity/WebPlayer64/loader-x64文件夾下找到UnityWebPluginAX.ocx文件,然后將其拖動到WindowForm工具箱中。


然后將其拖動到窗體中,並添加一個button作為動態添加Src路徑的按鈕(UnityWebPlayerControl控件默認不支持動態切換Src,只能初始化的時候默認賦值一個才能打開,這里我們進行一下微操...)。

三、實現一個UnityHelper

using System.Windows.Forms;
namespace Unity3D
{
public class UnityHelper
{
public static AxUnityWebPlayerAXLib.AxUnityWebPlayer CreateUnity(Form form,string src)
{
var unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();
((System.ComponentModel.ISupportInitialize)(unity)).BeginInit();
form.Controls.Add(unity);
((System.ComponentModel.ISupportInitialize)(unity)).EndInit();
unity.src = src;
AxHost.State state = unity.OcxState;
unity.Dispose();
unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();
((System.ComponentModel.ISupportInitialize)(unity)).BeginInit();
form.SuspendLayout();
unity.Dock = DockStyle.Fill;
unity.Name = "Unity";
unity.OcxState = state;
unity.TabIndex = 0;
((System.ComponentModel.ISupportInitialize)(unity)).EndInit();
form.ResumeLayout(false);
return unity;
}
}
}
然后在Form1.cs中寫下簡單的調用代碼
using System;
using System.Windows.Forms;
namespace Unity3D.NETFramework461
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string src = Application.StartupPath+@"/Unity3dFiles/trans.unity3d";
var unity = UnityHelper.CreateUnity(this,src);
Form form = new Form();
form.Controls.Add(unity);
form.Show();
}
}
}
在項目bin/Debug目錄下任意放一個Unity文件,這里我隨便找了一個
trans.unity3d

四、最后我們運行測試一下->

點擊按鈕

可以看到我們的代碼完美運行,並且在新窗口打開一個Unity文件。
如果想在原來的控件中顯示,直接賦值給一個Src即可,如果想動態改變,那么直接動態操作控件即可...

