遇到问题:

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.即可实现如下效果

Logo

分享最新的 NVIDIA AI Software 资源以及活动/会议信息,精选收录AI相关技术内容,欢迎大家加入社区并参与讨论。

更多推荐