【问题标题】:Get Animation states from an Animator in Unity3d从 Unity3d 中的 Animator 获取动画状态
【发布时间】:2014-03-30 18:21:14
【问题描述】:

我使用 Animator 创建了两个动画状态,我想在运行类型时更改这些动画的速度。如何在运行时获取这些动画并更改它们的速度?我必须附加动画组件还是动画器就足够了?

【问题讨论】:

    标签: animation unity3d


    【解决方案1】:

    使用 GetCurrentAnimatorStateInfo() 获取当前状态信息。

    “基础层”是您的基础层的名称

    var currentState : AnimatorStateInfo = animator.GetCurrentAnimatorStateInfo(0);
    if (currentState.nameHash == Animator.StringToHash("Base Layer.Player_standing"))
    {
        Debug.Log("I'm standing");
    }
    

    【讨论】:

    • 看来这是唯一可靠的方法,但我认为它很愚蠢。
    【解决方案2】:
    //get animation:
    
    animator = GetComponent<Animator>();
    AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
    
    //get animation speed, add animation speed
    
    Debug.Log("StateInfo length:  "+stateInfo.length);
    
    if(Input.GetKeyDown(KeyCode.A))
    {
        animator.speed += 1f;
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多