Unity Version:5.4.1f1
OS:Mac Sierra 10.12
Author:zhuchicu@163.com
官方文献:https://docs.unity3d.com/Manual/UsingDLL.html
monodevelop Version:6.1.2.44
Date: 2016年12月09日20:44:54
Q1:为什么要使用DLL?
A1:
1)你选择用来开发的编程语言并不被Unity支持(如 F#),这个时候你就可以考虑把这样的代码编译成DLL文件。
2)你并不想让代码公开,只是想提供调用接口,那么DLL是一个很好的选择。
Q2:怎么创建Unity3D 支持的DLL?
A2:
1)选择合适的编译器(因为Unity并不能确保支持所有编译器编译的.Net代码)。如:MonoDevelop Visual Studio
2)确定代码是否基于Unity的API。如果DLL文件不包含基于Unity的API的代码,你仍然可以使用合适的编译选项把它编译成DLL文件。
如果你想使用Unity的API,则你需要在编译器中引用Unity的DLL,有两个分别是UnityEngine.dll和UnityEditor.dll。
Mac系统,Unity的DLL路径:
/Applications/Unity/Unity.app/Contents/Frameworks/Managed/
Windows系统中,Unity的DLL路径是:
C:\Program Files(x86)\Unity\Editor\Data\Managed
Q3:Mac下怎么创建Unity3D 支持的DLL?
A3:
Mac终端通过命令(command)语句 mcs生成,使用mcs语句需要安装monodevelop(下载地址:http://www.monodevelop.com)。
例如:
mcs -r:/Applications/Unity/Unity.app/Contents/Managed/UnityEngine.dll
-target:library
/Users/maolinzhu/Project/UnityProject/HistoryMuseum_ExpandFunction/Assets/Scripts/Common/Debugger.cs,
-r:指定发布时被包含的库的路径;
-target:指定了发布时需要的文件
library:选中用于发布成DLL的源目标文件
Q4:Unity3D中如何使用DLL?
A4:
一旦编译好,DLL文件就可以像其他资源一样被拖进Unity的工程里面。
DLL资源上有个小三角形,用来显示库里面单独的一些类。
继承自MonoBehaviour类可以像普通的脚本拖到游戏对象上,
Non-MonoBehaviour类可以以平时的方式直接在其他脚本中使用。