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

时间:2024-03-15 14:33:49

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

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

      第一步,新建项目:

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

第二步:

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

第三步:

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

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

在mono中引入Unity的dll:

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

将Unity的脚本封装为dll文件(使用monodevelop编译器)
第四步:下面回到Unity,新建一个C#脚本test:脚本如下,将脚本拖拽到摄像机上,作为摄像机的组件:

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

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

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


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

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

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

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

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

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

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

将Unity的脚本封装为dll文件(使用monodevelop编译器)
解决这个错误的方法是在Options中,修改目标框架为Mono/.Net3.5或是以下版本。这是因为我用的Unity版本是5.3.4f1,支持的.NET Framework的版本为3.5。而我创建的项目的默认.NET Framework 3.5版本为4.5.2。

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

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

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

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

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

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

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


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

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

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

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

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

新建C#脚本test01。

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

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


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