Unity动画Disable时清除状态解决方法
问题
unity的Animator有个很反直觉的地方,就是当Animator被Disable时,它会释放掉所有的动画状态,当重新Enable时,动画会从第一帧重新开始,但这一般不是我们所期望的,我们希望的是它能继续从Disable的状态开始播放。
例子
举个例子,该场景中,我们播放个Cube向前动画,每隔一会我们会做下隐藏,我们希望它结束隐藏时,仍然能够从隐藏前的动画状态继续,直到达到终点为止。我们有2种隐藏做法,一种隐藏是不让Cube渲染出来,就能避开我所说的问题;第二种,则是通过gameObject反激活的方式进行隐藏。当我们采用第二种做法时,会发现Cube在激活后,又从第一帧开始播放动画了,
这就非常蛋疼。
解决方法
上网找了下资料,大致了解是Unity官方设计有误,为了解决这个问题,我们将Animator的keepAnimatorControllerStateOnDisable状态设置为true即可,这样就解决了。
参考资料
本文作者:陈侠云
本文链接:https://www.cnblogs.com/chenxiayun/p/18102666
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步