Unity-托管代码剥离

  • Unity托管代码剥离的意义
    • Unity托管代码的设置
    • link.xml简单使用

Unity托管代码剥离的意义

托管代码剥离,不仅可以减少生成的dll的大小,继而减少安装包的体积,对于一些小型单机 游戏尤其重要,同时也可以提高构建代码的速度,提高项目的开发速度。

Unity托管代码的设置

点击 Player Settings->Player->Managed Stripping Level 进入如下菜单:

  • Low: 根据一种保守的原则来剥离代码,因此实际剥离的代码非常少,对于包的大小作用很小。这是unity的il2cpp的默认剥离级别.
  • Medium:在Low和High中取得平衡,即没有Low那么谨慎,也不会像High那么极端
  • High: 优先考虑的是包的大小,而不是可用性。对于可用性,是通过辅助的link.xml来进行人为保留需要的库里面的命名空间或者制定的类.

link.xml简单使用

  • 在Assets目录下或者其子目录下定义一个link.xml文件
  • 编写link.xml,如下格式
<linker><!--整个程序集--><assembly fullname="Unity.Mono" preserve="all"/><assembly fullname="Unity.ThirdParty" preserve="all"/><assembly fullname="UnityEngine" preserve="all"/><!--指定程序集中的指定命名空间--><assembly fullname="JsonDotNet"><namespace fullname="Newtonsoft.Json" preserve="all"/></assembly><!--指定程序集某个类--><assembly fullname="mscorlib"><type fullname="System.Diagnostics" preserve="all"/></assembly>
</linker>
  • 在构建时,Unity会使用一个专门用于托管代码剥离的工具UnityLinker来进行剥离处理,其默认将unity中用到的所有程序集合并程一个整体程序集,然后根据一定规则,比如场景中游戏对象继承Monobehavior的对象,标记根元素,再次有根元素进行依赖查询,并将其他依赖的程序集或类或命名空间进行打标记。最后没有被标记的,将会被裁剪剥离。UnityLinker在构建时,回检查link.xml文件,将里面设置的忽略的程序集或者类型直接标记为根元素。因此可以保证不会被剥离。

Unity-托管代码剥离(link.xml使用)相关推荐

  1. Unity 托管代码剥离

    如果项目很大,代码量很多,不仅会使包体变大,编译时间变长,还会导致各种编译报错.比如: ARM64 branch out of range (154869072 max is +/-128MB) Un ...

  2. Unity发布IOS时设置link.xml遇到的一个fullname不正确的问题

    前两天在发布IOS时遇到两个问题. 1.StreamingAssets目录下的文本文件,在windows,android上可以用FileStream来读取,但是在IOS上却不能.经过尝试,用Unity ...

  3. 工厂 调用Unity Application Block 通过XML配置文件映射读取数据层方法

    1.首先创建FactoryApplication.cs应用程序文件继承HttpApplication 导入using System.Web.Security;     using System.Con ...

  4. Unity 读取和修改XML文档

    1.Unity 读取XML文档 (1) 创建一个无继承实体类Class01,一个纯C#无继承的实体类Class02. (2) Class01根据XML文档中的内容设置具体的字段,并且设置get/set ...

  5. Unity编辑器—Excel转Xml和Asset数据

    Unity版本 2019.4.9f1 准备工作 安装Excel的拓展库,百度网盘提取码1234 新建一个Plugins文件夹,将下载的拓展库放进去. 创建资源文件夹 开始扣代码 1. 创建基本数据类型 ...

  6. unity向服务器发送xml文件格式,Unity读取Excel文件转换XML格式文件的方法

    Unity读取Excel文件转换XML格式文件的方法 发布时间:2020-06-23 09:34:33 来源:亿速云 阅读:107 作者:清晨 不懂Unity读取Excel文件转换XML格式文件的方法 ...

  7. unity 天空盒_使用Substance in Unity搭建Unity和SP的live link实时互通环境

    一.Substance in Unity的live link的作用 作为TA,首先应该关注的就是一个流畅高效的工作流,使美术在一个稳定高效的环境下进行美术资产的制作.现在的游戏开发,PBR资产的贴图一 ...

  8. Unity 托管内存(Managed Memory)

    翻译:https://unity3d.com/cn/learn/tutorials/topics/best-practices/managed-memory 理解托管堆对 Unity 中的内存管理至关 ...

  9. Unity 中的 .NET、Mono 和 IL2CPP

    接 上一篇 继续了解,重点是 IL2CPP. 一.Unity 的脚本后端 Unity 使用开源 .NET 平台,以确保使用 Unity 创建的应用程序可以跨平台运行. 脚本后端(scripting b ...

最新文章

  1. Linux下中文man帮助安装。
  2. C语言编程课后训练,C语言编程课后训练20道题.doc
  3. 二十三、图的广度优先遍历
  4. linux实现字符火焰动画,linux flamegraph火焰图使用
  5. 软件需求和问题解决-转载
  6. fcpx调整图层_【FCPX萌新系列】新手常遇到的4个基础调色问题
  7. 两个摄像头自动切换画面_你知道吗?你的手机摄像头之间会打架
  8. 小学生把自己学校的网站搞了!
  9. 落枕了睡觉还枕枕头吗_兄弟,你还枕头吗?
  10. 学习笔记——深蓝学院点云系列公开课05:3D物体检测的发展与未来
  11. 编程语言php加密与解密的方法
  12. 服务注册与发现-全搞懂
  13. Pygame详解(十六):cursors 模块
  14. 也发个过VS3.0的MapHack
  15. YOYO软件使用指南
  16. 分析黑客入侵 PostgreSQL 数据库
  17. 【Python实战】再分享一款商品秒杀小工具,我已经把压箱底的宝贝拿出来啦~
  18. 使用基因组圈图表示变异在基因组内位置|R circlize包
  19. 高频交流信号采样电路设计
  20. STM32CubeMX定时器中断

热门文章

  1. AAAI2020放榜,审稿遭疯狂吐槽!八篇入选论文提前看!
  2. 真正借奥运雄起只有无线互联网
  3. AtCoder Beginner Contest 283 E - Don‘t Isolate Elements
  4. 【51单片机实验】4-单片机定时/计数器的应用(附Proteus电路)
  5. java实验2实验报告(20135232王玥)
  6. 6款常用且好用的Python编辑器推荐!
  7. 【操作系统】虚拟内存
  8. 算法刷题【洛谷P1593】因子和(附等比数列求和公式推导)
  9. 用HTML+CSS做一个简单好看的汽车网页
  10. 在微型计算机中 多媒体信息包括,公务员考试常识题:1、具有多媒体功能的微型计算机系统中,常用的CD-ROM是...