winform下展現Unity3D文件能夠支持對Unity3D實現的模塊進行包裝,以及在其餘的項目中須要展現Unity3D的界面時候,恰到適宜地進行打開展現,這裏我展現如何使用winform打開Unity3D文件。工具
1、在Unity的官網下載並安裝Unity測試
安裝完成後的目錄以下:this
2、在Unity/WebPlayer64/loader-x64文件夾下找到UnityWebPluginAX.ocx文件,而後將其拖動到WindowForm工具箱中。spa
而後將其拖動到窗體中,並添加一個button做爲動態添加Src路徑的按鈕(UnityWebPlayerControl控件默認不支持動態切換Src,只能初始化的時候默認賦值一個才能打開,這裏咱們進行一下微操...)。3d
3、實現一個UnityHelpercode
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中寫下簡單的調用代碼orm
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文件,這裏我隨便找了一個blog
trans.unity3d
4、最後咱們運行測試一下->string
點擊按鈕it
能夠看到咱們的代碼完美運行,而且在新窗口打開一個Unity文件。
若是想在原來的控件中顯示,直接賦值給一個Src便可,若是想動態改變,那麼直接動態操做控件便可...