前言:
在用Unity发布WP8应用时候,经常会遇到一些API不能用的情况,例如弹出MessageBox,无法使用string.Compare(string,string,bool)等等之类的问题。那么如何解决这些问题呢?解决方案之一就是制作插件。在Unity Manual中有这样一篇文章:http://docs.unity3d.com/Manual/wp8-plugins-guide-csharp.html 讲的就是如何制作Unity的WP8插件。小弟我用中文将这个过程描述一遍。由于能力有限,如果有什么不对的地方,希望各位大神多多帮帮哈!谢谢!
1、新建一个空白的解决方案,如下图所示:
2、给空白的解决方案,添加一个项目
3、这个新建项目是一个C#的类库项目,我们将其取名为FakeDLL,特别要注意的是要选择.NET Framework 3.5,如下图所示的那样:
4、这个项目建好后,我们再给那个解决方案添加一个C#的WP8 类库的项目。注意这时的应选择.NET Framework 4.5及以上版本,我们取名为RealDLL:
5、下面就是最为关键的一步:将两个类库属性中的”程序集名称“和”默认命名空间“全部改成解决方案的名字,如下图所示:
由于默认命名空间换了,所以在Class中也要做相应的修改
6、接来下就是编写代码了,我们FakeDLL的Class中写Unity可以用的一些功能,在RealDLL的Class中写WP里真正要用到的,如下代码所示:
FakeDLL:
RealDLL:
7、选择两个项目,生成DLL,如下图所示:
生成的DLL分别位于:RealDLL:\UnityWPPlugins\RealDLL\Bin\Debug;FakeDLL:\UnityWPPlugins\FakeDLL\Bin\Debug下,将FakeDLL生成的两个文件复制到Unity的Assets/Plugins文件夹下,将RealDLL生成的两个文件复制到Unity的Assets/Plugins/WP8文件夹下,如下图所示:
8、最后在Unity中我们就可以调用UnityWPPlugins命名空间下的Class1中的GetDevice方法了。在Unity Editor和WP真机上的运行效果分别如下:
代码:
Editor:
WP8:
这个方法同样适用制作Windows Store App和Windows Universal App等。