Light淡

导航

Unity IL2CPP 发布程序的错误

 

最近项目需要,使用了IL2CPP发布的程序。结果发现会报错——MeshRenderer的ReceiveShadows属性找不到。尝试解决的过程中,偶尔会错误消失,一度以为是偶现的编辑器问题。

由于代码中使用了反射获取ReceiveShadows的值,怀疑是Unity的Strip把MeshRenderer的值去除了。

经过查找资料,发现可以通过添加link.xml手动添加ReceiveShadows,这样就不会Strip这个属性,问题解决。

至于错误偶尔消失的问题,是由于寻找解决方案时代码中直接访问了ReceiveShadows,这样Unity也不会Strip这个属性。所以这也是一种间接的解决方案。

 

以下为简单的link,详细介绍参照Unity官方文档,功能比较多。

 

1 <linker>
2     <assembly fullname="UnityEngine.CoreModule">
3         <type fullname="UnityEngine.Renderer">
4             <property signature="System.Boolean receiveShadows"/>
5         </type>
6     </assembly>
7 </linker>

 

posted on 2021-01-14 08:52  Light淡  阅读(408)  评论(0编辑  收藏  举报