unity3D Animator 播放界面动画第一帧闪烁问题

    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的播放。当然也可以用协程就做这个事情。

你可能感兴趣的:(Unity3D)