在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);
}
}