如果你只做能力范围之内的事,你就永远不会有进步!|

陈侠云

园龄:2年10个月粉丝:1关注:1

Unity动画Disable时清除状态解决方法

问题

unity的Animator有个很反直觉的地方,就是当Animator被Disable时,它会释放掉所有的动画状态,当重新Enable时,动画会从第一帧重新开始,但这一般不是我们所期望的,我们希望的是它能继续从Disable的状态开始播放。

例子

举个例子,该场景中,我们播放个Cube向前动画,每隔一会我们会做下隐藏,我们希望它结束隐藏时,仍然能够从隐藏前的动画状态继续,直到达到终点为止。我们有2种隐藏做法,一种隐藏是不让Cube渲染出来,就能避开我所说的问题;第二种,则是通过gameObject反激活的方式进行隐藏。当我们采用第二种做法时,会发现Cube在激活后,又从第一帧开始播放动画了,
这就非常蛋疼。

解决方法

上网找了下资料,大致了解是Unity官方设计有误,为了解决这个问题,我们将Animator的keepAnimatorControllerStateOnDisable状态设置为true即可,这样就解决了。
image
image

参考资料

  1. https://forum.unity.com/threads/losing-animator-state.307667/
  2. https://forum.unity.com/threads/bool-parameter-does-not-persist-through-deactivation-reactivation-except-if-set-in-editor.287955/

本文作者:陈侠云

本文链接:https://www.cnblogs.com/chenxiayun/p/18102666

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   陈侠云  阅读(233)  评论(0编辑  收藏  举报
//雪花飘落效果
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起