问题描述
WinForm中可以顺利载入U3D场景,但是WPF中一直报错:【未能加载文件或程序集“Interop.UnityWebPlayerAXLib….】
原因
初步判断是因为缺少相关dll引用导致的,如WindowsFormIntegration.dll;
解决方案
在WPF中加载U3D场景的步骤:
1. 创建一个 WPF 工程;
2. 创建一个 WindowForm 自定义控件库 (UserControl)
1). 引入 UntiyWebPlayer COM 组件(AxInterop.UnityWebPlayerAXLib.dll和Interop.UnityWebPlayerAXLib);
2). 将AxInterop.UnityWebPlayerAXLib.UnityWebPlayer这个组件拖到 UserControl 里, 并将 Dock属性设置为 Fill 让它充满整个控件;
3). 在自定义的程序文件中,增加一个 UnityWebPlayer 的Public引用. 这样做的目的是,之后可以对其进行操作;
4). 生成 , 在 bin 中会有三个 DLL 文件 , 只有两个有用 . 一个是 AxInterop.UnityWebPlayerAXLib 另一个是 你定义的那个组件的 DLL;
将那两个有用的 DLL 引入到我们的 WPF 工程中. 并且 再引入 System.Windows.Forms.dll 及 WindowsFormIntegration.dll;
(有两个地方要注意:1.必须引用【System.Windows.Forms.dll】 及 【WindowsFormIntegration.dll】;2.将【Interop.UnityWebPlayerAXLib.dll】手动拷贝到debug/release目录下;)
在 WPF 的XAML的 Window 标签中 引入我们的 自定义控件的名称空间. 如: xmlns:unity=”…” 在 中, 加入一个 标签,用来承载我们的 WIndowsForm 的自定义组件. 并在其中 加入 如: . 这样, 就将UnityWebPlayer 嵌入了 WPF中.注意
部署项目到客户机器时,建议安装Full版本的【UnityWebPlayerFull.exe】,否则会出现断网的情况下,Unity3D场景无法加载显示;
下载地址:http://download.csdn.net/detail/hunter_hz/9444921