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

在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);
        }


Winform是一种用于开发Windows桌面应用程序的技术,而Unity是一种用于创建跨平台游戏和应用程序的开发引擎。将Unity嵌入Winform应用程序,意味着我们可以在Winform应用程序集成并显示Unity创建的3D场景或游戏。 实现Winform嵌入Unity的方法可以通过以下步骤: 1. 创建一个新的Winform应用程序项目。在项目需要引用Unity的相关库文件。 2. 在Winform应用程序的主窗口,可以通过添加一个Panel控件或者PictureBox控件来显示Unity的场景。这些控件可用于容纳Unity的渲染视图。 3. 编写代码,调用Unity的相关API来初始化Unity引擎,并将Unity的渲染视图绑定到Winform的控件上。可以使用Unity提供的UnityPlayer类来加载Unity场景,并将渲染视图绑定到Winform指定的控件上。 4. 在Winform应用程序,可以通过代码或用户界面控件来控制Unity场景的加载、卸载、暂停、播放等行为。可以通过调用Unity的API来实现与Unity场景的交互和通信。 5. 在Winform应用程序,可以通过其他Winform控件添加UI元素,例如按钮、文本框、滑动条等,用于与Unity场景进行交互。可以通过与Unity进行数据交换或通过消息传递的方式来实现控件与场景之间的通信。 通过以上步骤,我们就可以在Winform应用程序嵌入Unity场景,实现Unity场景的集成和显示。这样的应用场景可以是创建一个Winform应用程序,并在其嵌入一个与3D交互相关的Unity场景,例如展示产品模型、虚拟现实应用等。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值