【问题标题】:Get animation length - Unity获取动画长度 - Unity
【发布时间】:2014-03-27 03:19:51
【问题描述】:

我需要让位于基础层并命名为“TurnAround”的动画的长度。它使角色显示他们转身的动画。我如何获得这种转机?那么如何获取时间长度呢?

Turnaround 是 AnimationState 吗?它是 AnimationStateInfo 吗?它是 Animator 中带有转场的动画之一。

我有anim = GetComponent<Animator>(); 来获取动画师。我正在查看turnAround = anim.getCurrentAnimatorStateInfo,但我认为这不太对。

谢谢

【问题讨论】:

    标签: c# animation unity3d


    【解决方案1】:

    它在AnimationClip 下。

    调用它:

    float length = gameObject.animation.clip.length;
    

    编辑

    由于您使用的是动画师,您可以这样做:

    Animator animator = GetComponent<Animator>();
    
    float length = animator.animation.clip.length;
    

    Animator继承Animation,可以调用Animation的成员。

    编辑 2

    这是绝对可行的最终方法:

    Animation turnBack; //assign in inspector
    
    ...
    
    float length = turnBack.clip.length;
    

    turnBack 位于顶部,因此它是一个全局变量,然后您在统一编辑器(检查器)中将动画分配给它。您也可以使用一组动画来执行此操作,并通过它们的索引来引用它们

    Animation[] animations = new Animation[max];
    
    float length = animations[index].clip.length;
    

    【讨论】:

    • 谢谢。如何指定 TurnAround 动画?
    • 精灵没有动画。它有一个动画师,它有可以工作的动画。我应该只是动画吗?
    • @user3164083 检查编辑,动画“TurnAround”是Animation类型的对象,所以animation是具体的动画“TurnAround”
    • 那么,float length = anim.TurnAround.clip.length;??
    • MissingComponentException:没有“动画”附加到“doc”游戏对象,但脚本正在尝试访问它。您可能需要向游戏对象“doc”添加动画。或者您的脚本需要检查组件是否已附加
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2020-09-23
    相关资源
    最近更新 更多