将Unity的脚本封装为dll文件(使用monodevelop编译器)
2017-05-19 10:52
267 查看
首先说一下生成dll文件的必要性:给第三方公司提供Unity插件,又不希望对方看到具体的实现过程,这时候就需要将核心代码封装编译成dll文件,供第三方调用。或是多个项目都要用到同一个模块或同样的功能,则可以把该模块或是功能编译成dll,方便复用和维护。
查阅了网上现成的资料,几乎都是使用vs,将Unity脚本封装编译成dll文件的,这次分享给大家的是如何使用mono编译器编译dll文件。步骤上与vs是大同小异的。
第一步,新建项目:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/e6f0e90487d45f75b8cafe242c885796)
第二步:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/d05a83073db36d80800fd6436bfb726e)
第三步:
本篇文章讨论的是如何吧unity中的脚本文件转为dll文件, 如果想使用unity的api,则需要引入unity的,分别是 ,UnityEditor.dll 和 UnityEngine.dll,它们的地址如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/4aa16dcea68b046c2b130cebcb69f3c6)
在mono中引入Unity的dll:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/d74f04885243e8497998a361f53f5e73)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/dd48e1eea53e13cfb1cac6c1d5a48b87)
第四步:下面回到Unity,新建一个C#脚本test:脚本如下,将脚本拖拽到摄像机上,作为摄像机的组件:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/766c47e8ba202ef7e50e92b1405381f7)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/27965d89f7e09ce6771e2c38b6011907)
第五步:接着把unity中的脚本文件添加到解决方案中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/8b98aea24f2ceb2213b18e72b4c52d8d)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/4d433e67ae1eae0bfcf510d798cf5a15)
第六步:按下F5,生成解决方案。然后去生成解决方案的目录下找到刚刚生成的dll文件。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/8455912d3945c5fffc080c9ecd13f8c9)
第七步:最重要的时刻到了,就是把刚刚生成好的dll文件,拖延到unity中,可以在unity中建一个名为Plugins这个文件夹,专门用于存放那个dll文件,也可以不用Plugins这个文件夹,直接将dll文件拖放到Assets目录下。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/1e5aa21dafd3da9a1bc343de433ff5ae)
特别蛋疼坑爹的地方出现了,大家注意啦,特别特别注意!!!!!!!!!!打开Console输出面板会看见居然报错了,导入动态链接库报了错误。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/90a6f93f78cf39a42d254a5cfd33f959)
解决这个错误的方法是在Options中,修改目标框架为Mono/.Net3.5或是以下版本。这是因为我用的Unity版本是5.3.4f1,支持的.NET Framework的版本为3.5。而我创建的项目的默认.NET Framework 3.5版本为4.5.2。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/d1470a929843ac1afd496a374ab35eca)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/4799864e79158cc0564b8f8fc162ac8e)
修改完成之后,重新F5运行,生成新的dll文件,重新导入Unity。并且检查这里。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/6060c41f2f6d647644a30218455274d9)
按照上述操作之后,就可以解决动态链接库报错的问题。
第八步:删除Unity中的test脚本。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/934b365bbb15398a3dd9c617d2a7d2d9)
再将dll文件下的test脚本添加到摄像机丢失的脚本位置:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/b48d3592e3b35a0c6305e46ebd7314a6)
运行程序后,正确的打印出了我们创建的test脚本里面的结果。但是再查看脚本文件内容,已经看不到,因为内容被封装成dll文件了。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/2d0b23a7b77d711624b77a8c4cd2897b)
第九步:上面我们讲的是如何把unity的脚本文件编译成dll,接着讲unity又是如何使用这个dll文件, 下面我们试验一下在unity中调用一下dll中自身的类文件(非unity脚本文件)。
新建C#脚本test01。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/e8b0c31621cb12ca4198bf175afac057)
也将脚本test01挂载在摄像机上面,并且运行程序,查看输出结果
查阅了网上现成的资料,几乎都是使用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挂载在摄像机上面,并且运行程序,查看输出结果
相关文章推荐
- 将Unity的脚本封装为dll文件(使用monodevelop编译器)
- Unity3.5的脚本编写(C#),请使用VS编写,然后用MonoDevelop调试!
- 在Unity中使用Lua脚本
- 在Unity中使用Lua脚本:语言层和游戏逻辑粘合层处理
- 使用微软官方工具在VS中调试Unity脚本
- 如何使用MonoDevelop调试Unity3D脚本
- unity 脚本学习之常量 异常 修饰符 封装
- Unity脚本使用:物体间通信方式
- 使用vs2010编辑Unity脚本,配置方法
- unity脚本封装成dll
- 如何将Unity中的脚本文件转为dll文件
- Unity 2D游戏开发教程之使用脚本实现游戏逻辑
- 使用DLL文件中封装的窗口
- Unity_脚本和光照系统的结合使用_010
- Unity的button脚本及MaterialPropertyBlock使用、C#数组转list
- 在Unity中使用Lua脚本:语言层和游戏逻辑粘合层处理
- Unity使用MonoDevelop进行断点调试
- Unity脚本中使用NGUI的预先准备
- Unity使用git管理项目时场景中丢失脚本的问题
- (转)robotium脚本封装为APK,实现脱离手机数据线,使用按钮点击控制用例运行