开启engine code strip之后assetbundle中脚本丢失问题

在游戏项目中启用引擎代码裁剪以减小包大小时,可能会遇到AssetBundle中脚本丢失的问题,导致运行时错误。解决方法包括:通过Unity的ClassIDReference检查并手动添加缺失的脚本资源到Resource目录,或者利用BuildPlayerOptions.assetBundleManifestPath从2017版开始支持的功能,设置bundle路径以确保引用的脚本类型不被剥离,从而避免运行时错误。
摘要由CSDN通过智能技术生成

对于游戏包大小有严格显示的项目,一般会开启引擎代码裁剪

代码裁剪

这种情况下,引擎不用的代码在开启了il2cpp模式下,不会编译进包内,这样有一个风险,如果一个代码被引用的资源,没有任何一个在游戏包内,目前主要是 Resource目录,会因为代码裁剪导致对应的代码组件无法创建,出现报错

Could not produce class with ID 62. This could be caused by a class being stripped from the build even though it is needed. Try disabling 'Strip Engine Code' in Player Settings.

通过unity的reference可以查看id对应的class

https://docs.unity3d.com/Manual/ClassIDReference.html?_ga=2.140971506.1322574453.1582526602-1301433750.1582526602

然后创建一个对应脚本的资源,放到resource目录可以解决

问题是,只有出错才知道缺少了什么,比较被动,还一个办法是,设置bundle路径

2017以后的版本已经支持设置bundle路径来查看脚本的引用情况,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值