找回密码
 立即注册
查看: 2567|回复: 25

[简易教程] mac使用monodevelop编译器将Unity的脚本封装为dll文件

[复制链接]
发表于 2018-12-26 11:32 | 显示全部楼层 |阅读模式
首先说一下生成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 | 显示全部楼层
很不错
发表于 2019-7-19 09:15 | 显示全部楼层
楼主是超人
发表于 2019-7-19 08:41 | 显示全部楼层
好帖就是要顶
发表于 2019-7-19 09:12 | 显示全部楼层
说的非常好
发表于 2019-7-19 09:28 | 显示全部楼层
很好哦
发表于 2019-8-9 08:26 | 显示全部楼层
楼主是超人
发表于 2019-8-9 08:09 | 显示全部楼层
好帖就是要顶
发表于 2019-8-9 08:00 | 显示全部楼层
说的非常好
发表于 2019-8-9 07:43 | 显示全部楼层
很好哦
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-22 20:59 , Processed in 0.293510 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表