winform中嵌入unity3d,并动态设置路径src

来源:互联网 发布:jsp通过数据库登录注册 编辑:程序博客网 时间:2024/04/29 14:07

在winform中如何嵌入unityed,请参考此帖 http://neil.wyh.blog.163.com/blog/static/3161151201361480843/但是该文中,并没有告诉如何动态设置src。这个src必须是绝对路径,而且只能在设计器进行设置,不能在代码中动态修改。这样造成的问题就是,unity3d文件必须是写死的,如果换一个路径就无效了,这样极不利于分布到其他电脑上。当然,如果这个src是http形式的,则不存在这个问题,如果是本地路径(比如c:\u.unity3d)则是个大问题。以下是解决方法,在4.5.5版本测试成功。


        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.State state = unity.OcxState;            unity.Dispose();            unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();            ((System.ComponentModel.ISupportInitialize)(unity)).BeginInit();            this.SuspendLayout();            unity.Dock = DockStyle.Fill;            unity.Name = "Unity";            unity.OcxState = state;            unity.TabIndex = 0;            panel1.Controls.Add(unity); //panel1是我用的一个容器,改成this.Controls也可以            ((System.ComponentModel.ISupportInitialize)(unity)).EndInit();            this.ResumeLayout(false);        }


2 0