一只单身猿


open_in_new

C# winform程序中创建可动态修改src的UnityWebPlayer

alarm2016-01-23 faceyejinmo

UnityWebPlayer是unity3d的一个播放器插件,在C# winform中使用它并对src属性赋值即可调用对应的U3D场景,实现三维立体展示。

但此src属性只接受绝对路径,并且不能在程序运行时动态修改,此特性对程序可移植性造成了很大影响。但如果动态创建控件并赋值即可消除影响。

首先在工具箱中右键“选择项”,在弹出的对话框中跳转至“COM组件”,选择UnityWebPlayer添加进工具箱即可(如果没有此项可点此安装

QQ图片20160123203316

动态创建unitywebplayer控件的函数代码如下:


private void CreateUnityWebPlayer()
{
    var unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();
    ((System.ComponentModel.ISupportInitialize)(unity)).BeginInit();
    Controls.Add(unity);
    ((System.ComponentModel.ISupportInitialize)(unity)).EndInit();
    unity.src = "此处请填写.unity3d源文件的绝对路径";
    AxHost.State state = unity.OcxState;
    unity.Dispose();
    unity = new AxUnityWebPlayerAXLib.AxUnityWebPlayer();
    ((System.ComponentModel.ISupportInitialize)(unity)).BeginInit();
    this.SuspendLayout();
    unity.Name = "Unity";
    unity.OcxState = state;
    unity.Dock = DockStyle.Fill;
    this.Controls.Add(unity); 
    ((System.ComponentModel.ISupportInitialize)(unity)).EndInit();
    this.ResumeLayout(false);
}

That’s a posting full of ingtshi!

2016-05-23 08:22

这样确实可以动态地设置src,但是无法使用Unity执行SendMessage方法

2019-08-23 13:56

Youmustbe loggedin to post a comment.