unity3D使用dll打包
2015-09-06 19:07
295 查看
unity中有些时候有些代码是一整套的,如果能把他们归类起来作为一个文件整个代码结构看起来就会整洁清爽很多。
c#提供了dll打包,但是unity中由于涉及到unity的自身dll,如UnityEngine.dll,我们一般写的很多代码都会涉及到对这个dll的引用,在unity中建代码文件都会默认添加对此dll命名空间的使用,using UnityEngine;
因此在涉及到使用此dll在打包dll的时候就要有点特殊处理。
项目中常见的是对Debug的二次封装,由于调试的需求,在项目开发周期debug是个很重要且常用的类,但是debug的效率实在是不忍直视,所以在打包apk时出于效率考虑就要屏蔽掉debug的调试,这时要做的可能是删除掉所有对应的代码,这基本上是不可能的,不说这些调试代码可能以后会用到,每次打包都删一次也不实际。还有一种是设定bool值,每次调用Debug类的时候,判定此bool值,每次都要判定,这本书就代码冗余,设计的不合理。这里大家想到的可能都是二次封装了。在封装一个类,调用Debug的时候调用封装的类,但是这又设计到一个问题,Debug调试的一个重要功能就是显示在控制台的信息双击可以跳到指定代码,如果这样二次封装的话就每次跳到封装的代码里,而不是我们想要的地方。有人说可以看堆栈调用信息,可是每次都看,很累的。对于这个问题,便是将二次封装类进行dll打包。
啰嗦了一大堆,只是说明为什么要对Debug进行二次封装和为什么要用dll的原因,具体方法如下,unity官方提供了相应的教程。
Unity官方文档教程链接地址
文档是英文的,但是不难,分别讲解了在Windows条件下和mac条件下的操作方法。
这里以Windows为例,大概讲解一下。
流程:
1.先进入unity的安装目录,找到你引用的dll,地址类似于C:\Program Files\Unity\Editor\Data\Managed
如你引用了UnityEngine.dll,那么久复制对应的文件。
2.将复制的文件拷贝到硬盘根目录,根目录的缘故是为了接下来方便操作,也可以在根目录下创建一个文件夹,将文件放入这个文件夹。这里示例为F盘根目录 。注意:不建议放在桌面
3.将你要打包dll的文件复制到同个地方(示例为F盘根目录)
4.开cmd界面,进入执行文件的目录,路径大概如下
C:\Program Files (x86)\Unity4.6\Editor\Data\MonoBleedingEdge\lib\mono\2.0
根据自己的安装目录进行参考
5.执行命令,命令大概如下
mcs -r:F:\UnityEngine.dll -target:library F:\DebugCustom.cs
其中mcs是命令是要执行的命令,F:\UnityEngine.dll是引用的dll,如果你引用了多个dll,可以加个空格后继续添加,-target:library是指将文件打包成dll,F:\DebugCustom.cs是你要打包成dll的文件,如果文件有多个,同样加空格然后在后面添加
上面就是流程了,看完了后不知道有没有看出问什么会有上面那个注意了,第五条中空格很关键,而我们桌面的路径有的会有空格,win7的没有,好像是Xp有,所以只是不建议,而不是不能。大家根据自己的情况调整就行。
文章原创,转载请注明出处。
c#提供了dll打包,但是unity中由于涉及到unity的自身dll,如UnityEngine.dll,我们一般写的很多代码都会涉及到对这个dll的引用,在unity中建代码文件都会默认添加对此dll命名空间的使用,using UnityEngine;
因此在涉及到使用此dll在打包dll的时候就要有点特殊处理。
项目中常见的是对Debug的二次封装,由于调试的需求,在项目开发周期debug是个很重要且常用的类,但是debug的效率实在是不忍直视,所以在打包apk时出于效率考虑就要屏蔽掉debug的调试,这时要做的可能是删除掉所有对应的代码,这基本上是不可能的,不说这些调试代码可能以后会用到,每次打包都删一次也不实际。还有一种是设定bool值,每次调用Debug类的时候,判定此bool值,每次都要判定,这本书就代码冗余,设计的不合理。这里大家想到的可能都是二次封装了。在封装一个类,调用Debug的时候调用封装的类,但是这又设计到一个问题,Debug调试的一个重要功能就是显示在控制台的信息双击可以跳到指定代码,如果这样二次封装的话就每次跳到封装的代码里,而不是我们想要的地方。有人说可以看堆栈调用信息,可是每次都看,很累的。对于这个问题,便是将二次封装类进行dll打包。
啰嗦了一大堆,只是说明为什么要对Debug进行二次封装和为什么要用dll的原因,具体方法如下,unity官方提供了相应的教程。
Unity官方文档教程链接地址
文档是英文的,但是不难,分别讲解了在Windows条件下和mac条件下的操作方法。
这里以Windows为例,大概讲解一下。
流程:
1.先进入unity的安装目录,找到你引用的dll,地址类似于C:\Program Files\Unity\Editor\Data\Managed
如你引用了UnityEngine.dll,那么久复制对应的文件。
2.将复制的文件拷贝到硬盘根目录,根目录的缘故是为了接下来方便操作,也可以在根目录下创建一个文件夹,将文件放入这个文件夹。这里示例为F盘根目录 。注意:不建议放在桌面
3.将你要打包dll的文件复制到同个地方(示例为F盘根目录)
4.开cmd界面,进入执行文件的目录,路径大概如下
C:\Program Files (x86)\Unity4.6\Editor\Data\MonoBleedingEdge\lib\mono\2.0
根据自己的安装目录进行参考
5.执行命令,命令大概如下
mcs -r:F:\UnityEngine.dll -target:library F:\DebugCustom.cs
其中mcs是命令是要执行的命令,F:\UnityEngine.dll是引用的dll,如果你引用了多个dll,可以加个空格后继续添加,-target:library是指将文件打包成dll,F:\DebugCustom.cs是你要打包成dll的文件,如果文件有多个,同样加空格然后在后面添加
上面就是流程了,看完了后不知道有没有看出问什么会有上面那个注意了,第五条中空格很关键,而我们桌面的路径有的会有空格,win7的没有,好像是Xp有,所以只是不建议,而不是不能。大家根据自己的情况调整就行。
文章原创,转载请注明出处。
相关文章推荐
- unity之GameObject
- Unity Game Programming AI(5)A Star寻路算法
- Unity性能优化原则(一)
- unity之MonoBehaviour
- 教你快速高效接入SDK——Unity统一接入渠道SDK(Android篇)
- unity survival shooter ZSpace
- 面向对象编程OPportunity Presentation(OPP)语言
- Unity读取XML定制。
- unity3d5.1物体椭圆旋转选择界面实现(二)
- Unity3D,获取相册图片,手机拍照
- error CS0234: The type or namespace name 'EventSystems' does not exist in the namespace 'UnityEngine'. Are you missing an assembly reference?
- Unity 2D游戏开发教程之摄像头追踪功能
- Unity 2D游戏开发教程之摄像头追踪功能
- [Unity基础]三种截图方法
- Unity3D音乐音效学习笔记
- Unity 4.5 升级到 5.1.2相关
- Unity 接入 ShareSDK 的微信分享
- Unity3d通用工具类之解压缩文件
- 游戏引擎中三大及时光照渲染方法介绍(以unity3d为例)
- Unity导出Xcode工程ShareSDK功能的配置