【问题标题】:How to control the animation to be played by a specific times in unity animator?unity animator 中如何控制特定时间播放的动画?
【发布时间】:2016-01-06 15:56:22
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# unity3d animator


    【解决方案1】:

    你不能只在你的游戏对象中使用计数吗?设置一个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();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 2019-11-16
      • 2022-01-23
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多