在Unity中, 我们有时候不仅需要animator
正放的效果,也需要倒放的效果。但我们在实际制作动画的时候可以只制作一个正放的动画,然后通过代码控制倒放。
实现方法其实很简单,只需要把animator
动画的speed
设置为-1即为倒放,speed
设置为1即为正放:
animator.speed = -1f; //倒放
animator.speed = 1f; //正放
比如我制作了一个从无到有的提示语的animator
动画,然后我再通过设置speed
=-1进行倒放。从而实现从无到有,再从有到无的效果。
首先我创建一个动画:
然后新建一个控制脚本,AnimatorController.cs,并编写如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AnimatorController : MonoBehaviour
{public Animator animator;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){if(Input.GetKeyDown(KeyCode.A)){animator.enabled = true;animator.Rebind();animator.speed = 1;animator.Play(0);StartCoroutine(wait());}}IEnumerator wait(){yield return new WaitForSeconds(1f);animator.Rebind();animator.speed = -1;animator.Play(0);}
}
把脚本放到场景中,并赋值animator对象,运行后,完美实现倒放。
制作效果如下:
Unity animator动画倒放的方法