如何控制动画由统一动画制作者在特定时间播放

本文关键字:动画 制作者 动画制作 播放 定时间 何控制 控制 | 更新日期: 2023-09-27 18:29:23

我有一个动画师,其中有一个动画的状态被设置为循环。我想控制它玩3次或一次。怎么做?

public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        int normalizedTime = Convert.ToInt32((stateInfo.normalizedTime));
        if (normalizedTime == animator.GetInteger(PlayTimes))
        {
            animator.SetBool("ToNextState", true);
        }  
    }

我试着用这种方式来做,但我认为它并不完美,因为有时这个动画无法准确地停止。

动画结束时是否触发了事件?

如何控制动画由统一动画制作者在特定时间播放

难道不能在gameObject中使用计数吗?设置int并向其提供动画循环3的次数,然后在代码中动画开始时将animationRan变量设置为0。现在,在动画窗口中,在调用的动画末尾放置一个函数,该函数将增加animationRan变量。

然后在动画开始时调用一个方法来检查animationRan是否达到了极限,如果达到了极限则执行

像这样的

...
public int animationLimit = 3;
public int animationRan = 0;
....
public void OnAnimationStart()
{
    animationRan = 0;
}
public void OnAnimationEnd()
{
    if(animationRan < animationLimit)
    {
        Animation.Stop();
    }
}