Unity中Animator動畫的正播、倒播和暫停

        在animator中製作動畫的正播和倒播,其實可以做兩個animation,做他們之間的過渡動畫,但是現在我們說的是一個動畫做停止和正播倒播。

        首先,是在老版中的Animator中使用動畫的speed = 1(正播),speed = -1(倒播),speed = 0(停止)

注:現在speed設置爲負數無效

看代碼:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AnimController : MonoBehaviour
{
    public Animator ani;

    private void Start()
    {
        ani.speed = 0;
    }

    /// <summary>
    /// 正播速度爲1
    /// </summary>
    public void OnClickForward()
    {
        //ani.speed = 2;    正播速度爲2 
        ani.speed = 1;
    }

    /// <summary>
    /// 暫停
    /// </summary>
    public void OnClickPause()
    {
        ani.speed = 0;
    }

    /// <summary>
    /// 倒播速度爲1
    /// </summary>
    public void OnClickBack()
    {
        ani.speed = -1;
    }
}

然後,看現在的做法:

 在Animator Parameters中添加一個float變量  然後將這個變量賦給需要倒播的動畫片段

 

看代碼:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AnimController : MonoBehaviour
{
    public Animator ani;

    private void Start()
    {
        ani.SetFloat("speed", 0);
    }

    /// <summary>
    /// 正播速度爲1
    /// </summary>
    public void OnClickForward()
    {
        ani.SetFloat("speed", 1.0f);
    }

    /// <summary>
    /// 暫停
    /// </summary>
    public void OnClickPause()
    {
        ani.SetFloat("speed", 0);
    }

    /// <summary>
    /// 倒播速度爲1
    /// </summary>
    public void OnClickBack()
    {
        //倒播速度爲 1
        //ani.SetFloat("speed", -5.0f);     倒播速度爲5
        ani.SetFloat("speed", -1.0f);
    }
}

 

發佈了62 篇原創文章 · 獲贊 53 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章