资源大湿 发表于 2018-12-26 11:32

mac使用monodevelop编译器将Unity的脚本封装为dll文件

首先说一下生成dll文件的必要性:给第三方公司提供Unity插件,又不希望对方看到具体的实现过程,这时候就需要将核心代码封装编译成dll文件,供第三方调用。或是多个项目都要用到同一个模块或同样的功能,则可以把该模块或是功能编译成dll,方便复用和维护。

       查阅了网上现成的资料,几乎都是使用vs,将Unity脚本封装编译成dll文件的,这次分享给大家的是如何使用mono编译器编译dll文件。步骤上与vs是大同小异的。

      第一步,新建项目:



第二步:



第三步:

本篇文章讨论的是如何吧unity中的脚本文件转为dll文件, 如果想使用unity的api,则需要引入unity的,分别是 ,UnityEditor.dll 和 UnityEngine.dll,它们的地址如下:



在mono中引入Unity的dll:




第四步:下面回到Unity,新建一个C#脚本test:脚本如下,将脚本拖拽到摄像机上,作为摄像机的组件:





第五步:接着把unity中的脚本文件添加到解决方案中:






第六步:按下F5,生成解决方案。然后去生成解决方案的目录下找到刚刚生成的dll文件。



第七步:最重要的时刻到了,就是把刚刚生成好的dll文件,拖延到unity中,可以在unity中建一个名为Plugins这个文件夹,专门用于存放那个dll文件,也可以不用Plugins这个文件夹,直接将dll文件拖放到Assets目录下。



特别蛋疼坑爹的地方出现了,大家注意啦,特别特别注意!!!!!!!!!!打开Console输出面板会看见居然报错了,导入动态链接库报了错误。


解决这个错误的方法是在Options中,修改目标框架为Mono/.Net3.5或是以下版本。这是因为我用的Unity版本是5.3.4f1,支持的.NET Framework的版本为3.5。而我创建的项目的默认.NET Framework 3.5版本为4.5.2。





修改完成之后,重新F5运行,生成新的dll文件,重新导入Unity。并且检查这里。



按照上述操作之后,就可以解决动态链接库报错的问题。

第八步:删除Unity中的test脚本。




再将dll文件下的test脚本添加到摄像机丢失的脚本位置:



运行程序后,正确的打印出了我们创建的test脚本里面的结果。但是再查看脚本文件内容,已经看不到,因为内容被封装成dll文件了。



第九步:上面我们讲的是如何把unity的脚本文件编译成dll,接着讲unity又是如何使用这个dll文件, 下面我们试验一下在unity中调用一下dll中自身的类文件(非unity脚本文件)。

新建C#脚本test01。



也将脚本test01挂载在摄像机上面,并且运行程序,查看输出结果




---------------------
作者:丢丢思密达
来源:CSDN
原文:https://blog.csdn.net/qq_25210959/article/details/53285403
版权声明:本文为博主原创文章,转载请附上博文链接!

叶落秋无声 发表于 2019-7-19 09:05

很不错

valakaslove 发表于 2019-7-19 09:15

楼主是超人

valakaslove 发表于 2019-7-19 08:41

好帖就是要顶

yezizhu 发表于 2019-7-19 09:12

说的非常好

tajasn 发表于 2019-7-19 09:28

很好哦

diwenchao 发表于 2019-8-9 08:26

楼主是超人

hanhan 发表于 2019-8-9 08:09

好帖就是要顶

enven 发表于 2019-8-9 08:00

说的非常好

particle 发表于 2019-8-9 07:43

很好哦
页: [1] 2 3
查看完整版本: mac使用monodevelop编译器将Unity的脚本封装为dll文件