最近手头一个app在ios平台疯狂crash(Android可能也有同样问题,暂时没有测试),经过一段时间的排查发现,由于我将部分模型预制件从Resources文件夹中移除并打包为AssetsBundle,原本挂载的脚本我也改用addComponent去添加,但是在Strip Engine Code设为enable的情况下,貌似unity会认定这些待挂载脚本为无用代码(可能因为场景中和Resources文件夹中都没有引用),最终发布时并没有将其打包,最终导致调用这段代码时crash.
但是为了过滤掉无用资源使安装包尽可能小,我又不太愿意disable这个功能。所以想请教一下老师,除了一些比较野的路子(比如将待挂载脚本以disable状态挂载在一个空物体上,场景加载后销毁。从而使得脚本“强行”有用)之外,有没有什么好的方法使这些少数暂时看起来用不到的C#脚本绕开Strip Engine Code的过滤。
请参考WebGL平台下的解决方法
iOS与WebGL均采用了IL2CPP来Build,勾选了Strip Engine Code后就会精简掉不用的代码,毫无疑问
除了你提到的野路子(不得不说是个好路子啊),我们还可以通过配置文件强制包含
为您提供了参考链接,老师这边就不详细说了
http://blog.csdn.net/chiuan/article/details/42456805