Unity 打包TimeLine时,ControlTrack轨道异常,不生效。
原因是il2cpp的代码裁剪,会裁减掉未使用的代码。
注意:Strip Engine Code 未勾选也会有代码裁剪,对于引擎内部的代码裁剪不管是否勾选,始终在启用中。
方法一:添加 Public 对象。
方法二:在link.xml里添加对象。
还有其他方法,但是这两个好像最方便快捷。
坑:程序集和命名空间不能画等号。
比如TimeLine 的 程序集 是 Unity.Timeline , 但是命名空间是 UnityEngine.Timeline 。
所以在xml里,应该是
<assembly fullname="Unity.Timeline" preserve="all"/>
也可以是设置具体的类
<assembly fullname="Unity.Timeline"> <!-- 只能是程序集 -->
<type fullname="UnityEngine.Timeline.ControlTrack" preserve="all"/> <!-- 要保存的类的具体路径 -->
</assembly>