遇到问题:
1.动画无法倒放;
2.先正放完,后开始倒放动画时,出现时间上的延迟问题;
3.正放过程中,无法开启倒放动画,必须要等到正放播放完才能开启倒放。
解决办法如下:
1.先创建动画状态机
2.勾掉Has Exit Time
3.再创建float类型的参数,默认为1
4.给Move动画下的Speed——Multiplier设置上面创建的参数,进行控制速度
5.编辑脚本Test
using UnityEngine;
public class Test : MonoBehaviour {
// Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.A))
{
if (GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).normalizedTime <= 0)
{
GetComponent<Animator>().SetFloat("Speed", 1);
GetComponent<Animator>().Play("Move", 0, 0);
}
else if(GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).normalizedTime > 0)
{
GetComponent<Animator>().SetFloat("Speed", 1);
GetComponent<Animator>().Play("Move", 0);
}
}
if(Input.GetKeyDown(KeyCode.D))
{
if (GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).normalizedTime >1)
{
GetComponent<Animator>().SetFloat("Speed", -1);
GetComponent<Animator>().Play("Move", 0, 1);
}
else if (GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).normalizedTime <= 1)
{
GetComponent<Animator>().SetFloat("Speed", -1);
GetComponent<Animator>().Play("Move", 0);
}
}
}
}
6.即可实现如下效果