您的位置:首页 > 移动开发 > Unity3D

【Unity基础知识之五】Unity3d-在Unity项目中使用Mono DLL(动态链接库)

2015-08-13 09:30 441 查看
最近研究了下Unity对Dll的调用。查了一些资料,总结如下。

为什么要用DLL?

答:

1:你选择用来开发的编程语言并不被Unity支持(如 F#),这个时候你就可以考虑把这样的代码编译成DLL文件。

2:你并不想让代码公开,只是想提供调用接口,那么DLL是一个很好的选择。

怎么做?

答:回答这个问题,首先要解决“怎么创建Unity3d 支持的DLL”和“Unity3D要怎么使用DLL.”

1. 创建Unity3d支持的DLL

(1)选择合适的编译器(因为Unity并不能确保支持所有编译器编译的.Net代码)。

如:MonoDevelop
Visual Studio

(2)确定代码是否基于Unity的API。

如果DLL文件不包含基于Unity的API的代码,你仍然可以使用合适的编译选项把它编译成DLL文件。

如果你想使用Unity的API,则你需要在编译器中引用Unity的DLL,有两个分别是UnityEngine.dll和UnityEditor.dll。

Mac系统上Unity的DLLS路径一般是:

/Applications/Unity/Unity.app/Contents/Frameworks/Managed/

Windows系统中,DLLS能在Unity应用的安装文件夹中找到。路径一般是:

C:\Program Files(x86)\Unity\Editor\Data\Managed

最后,准确的编译DLL将取决于编译器的使用。

例:Mono C#编译器的命令行,在Mac系统上mcs可能像下面这样

mcs -r:/Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll -target:library ClassesForDLL.cs

这里,-r指定了发布时被包含的库的路径,在这个例子中是UnityEngine的库。-target指定了发布时需要的文件;"library"被用于选着的发布一个DLL。最后,ClassForDLL.cs就是将要被编译的文件。 (假定这个文件是在当前工作目录,如果必要的话你可以指定文件使用的完整路径)。如果一切顺利,生成的DLL文件不久就会出现在源文件的同一文件夹下。

2. Unity3d使用DLL文件

一旦编译好,DLL文件就可以像其他资源一样被拖进Unity的工程里面。DLL资源上有个小三角形,用来揭示库里面单独的一些类。继承自MonoBehaviour类可以像普通的脚本拖到游戏对象上。Non-MonoBehaviour类可以以平时的方式直接在其他脚本中使用。




参考文献:http://docs.unity3d.com/Documentation/Manual/UsingDLL.html

附上一个 Demo,点击下载

原文链接:http://www.cnblogs.com/flamepenguin/p/3545979.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: