Unity动画Disable时清除状态解决方法
问题
unity的Animator有个很反直觉的地方,就是当Animator被Disable时,它会释放掉所有的动画状态,当重新Enable时,动画会从第一帧重新开始,但这一般不是我们所期望的,我们希望的是它能继续从Disable的状态开始播放。
例子
举个例子,该场景中,我们播放个Cube向前动画,每隔一会我们会做下隐藏,我们希望它结束隐藏时,仍然能够从隐藏前的动画状态继续,直到达到终点为止。我们有2种隐藏做法,一种隐藏是不让Cube渲染出来,就能避开我所说的问题;第二种,则是通过gameObject反激活的方式进行隐藏。当我们采用第二种做法时,会发现Cube在激活后,又从第一帧开始播放动画了,
这就非常蛋疼。
解决方法
上网找了下资料,大致了解是Unity官方设计有误,为了解决这个问题,我们将Animator的keepAnimatorControllerStateOnDisable状态设置为true即可,这样就解决了。



浙公网安备 33010602011771号