如何从特定帧播放动画师的动画?

时间:2019-04-15 13:06:44

标签: unity3d unityscript

如何从特定帧播放动画师的动画?

我有一个100帧的动画,我想播放50-100帧。我如何做到这一点?

public Animator vertical_head;
    // Use this for initialization
    void Start () {

        vertical_head.GetComponent<Animator>().enabled = true;
        vertical_head.Play("Take 001", 1, framenumber);

    }

上面的代码不是从第50帧开始播放,而是从0开始。

1 个答案:

答案 0 :(得分:1)

我看不到您在哪里和如何获得frameNumber,但我猜您是通过50

Animator.Play

  

normalizedTime时间偏移量介于零和一之间

期望一个介于01之间的值。因此,当您传入50时,它使用的是1而不是动画的最后一帧→如果剪辑正在循环,它将直接开始一个新的循环,因此好像从0开始

在您的情况下,您要在片段长度的一半之后开始,所以:

vertical_head.Play("Take 001", 1, 0.5f);

另外,您的动画似乎实际上在默认层上,因此您也应该在此处使用0而不是1

vertical_head.Play("Take 001", 0, 0.5f);