创建Mono DLL放在Unity里使用的原因

在Unity中使用动态库(Mono 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
https://files-cdn.cnblogs.com/files/flamepenguin/MyDLL.rar

原文:https://www.cnblogs.com/cmt/p/14580194.html?from=https%3A%2F%2Fwww.cnblogs.com%2Fflamepenguin%2Fp%2F3545979.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值