Unity-托管代码剥离(link.xml使用)

Unity托管代码剥离的意义

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

Unity托管代码的设置

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

  • 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文件,将里面设置的忽略的程序集或者类型直接标记为根元素。因此可以保证不会被剥离。
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值