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