Animator 播放一个界面动画,如果动画是把界面从屏幕外面移动到屏幕内部的时候。打开界面就会显示界面的默认位置,然后播放Animator,然后Animator在会去在第一帧矫正界面的位置。就会出现一个问题,界面会先出现闪一下,在执行动画过程。
这里有一个解决的办法,思路是打开界面,首先播放Animator第一帧,校正界面的位置,然后Animator enable false,最后利用协程或是其他方法在下一帧Animator enable true。经过测试,就可以解决第一帧闪界面的问题。
animator.Play(stateName);
animator.enabled = false;
animator.Update(0f);
DOTween.Sequence()
.AppendInterval(0)
.AppendCallback
(
() =>
{
animator.enabled = true;
}
)
.Play();
这里代码,先播放特定的状态,然后利用Update(0)来强制校正第一帧界面的位置。 然后利用DOTween的队列延迟一帧去回复Animator的播放。当然也可以用协程就做这个事情。