Unity3D 能够很方便的集成一些外部插件,以便调用现有的动态链接库。下面会介绍Unity中如何集成Dll的两种方法。

1. 

这里所使用的语言是C#。

1.1  新建C#类库项目,这里就不多介绍了。

1.2  项目建好后正常的编写代码。

unity ios dll Unity ios dllcanunloadnow_unity ios dll

以上是一个简单的测试代码。

1.3  将项目属性 -> 应用程序 -> 目标框架:改为 .NET Framework 3.5或以下 。这一步很重要,因为Unity3D(当前的Unity3D版本是3.5版) 支持的 .Net 是3.5版。

如果选择的是4.0版会出现

Internal compiler error. See the console log for more information. output was:

Unhandled Exception: System.TypeLoadException: Could not load type 'System.Runtime.Versioning.

错误。

unity ios dll Unity ios dllcanunloadnow_官网_02

1.4  生成解决方案。到此,C# Dll工作完成。

1.5  导入Dll到Unity中。将Dll拷贝到Assets目录下任何一个目录都可以。一般是在Plugins目录中,因为Dll大多是外部功能块,同时也方便跨语言调用。

1.6  在Unity中编写简单代码。

unity ios dll Unity ios dllcanunloadnow_System_03

1.7  运行结果。

unity ios dll Unity ios dllcanunloadnow_3d_04

2.  Unity的方案

官网指出,Unity已经广泛支持基于C,C++或者Objective-C语言的插件。原文说明http://docs.unity3d.com/Documentation/Manual/Plugins.html 以下示例可从官网获得,下载示例代码http://docs.unity3d.com/Documentation/Images/manual/SimplestPluginExample.zip

2.1  编写插件代码。

unity ios dll Unity ios dllcanunloadnow_System_05

2.2  在Unity要做些什么。

unity ios dll Unity ios dllcanunloadnow_官网_06

注意:在[DllImport ("ASimplePlugi")] 参数中不要加入 .dll 后缀。

2.3  运行结果如下。

unity ios dll Unity ios dllcanunloadnow_官网_07