Mono相比IL2CPP两种方式,前者出现较早,后者相对来说更快捷更方便,目前主流选用IL2CPP,但是也有一定的缺点,部分资源较老,使用IL2CPP会造成不兼容的情况。
以下面的unity资源商店demo举例:
基于标识显示模型demo资源包
使用IL2CPP进行编译就会失败导致逻辑进程断掉,进而导致应用卡死
报错内容显示为下方图例
打包应用在AR设备上之后出现下面错误
MarshalDirectiveException:Cannot marshal System.Double
查找大量资料后最终在下方链接找到了解决方案
考虑使用Mono来进行编译处理,后续打包到设备,实现效果
修改尝试之后,问题解决
结论:unity项目配置会影响到最终成果,unity运行正常,如果打包安装出现问题可优先在项目设置进行排查,资源包版本较老的情况下,出现类似错误,都可尝试修改使用Mono。