0

我有一个动画师,其中有一个动画状态设置为循环播放。我想控制它播放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);
        }  
    }

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

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

4

1 回答 1

0

你不能只在你的游戏对象中使用计数吗?设置一个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();
    }
}
于 2016-01-06T16:53:38.843 回答