Unity Animator 之 轻松实现动画倒放的效果

Unity Animator 之 轻松实现动画倒放的效果

  • Unity Animator 之 轻松实现动画倒放的效果_第1张图片

    1

  • Unity Animator 之 轻松实现动画倒放的效果_第2张图片

    2

  • Unity Animator 之 轻松实现动画倒放的效果_第3张图片

    3

  • Unity Animator 之 轻松实现动画倒放的效果_第4张图片

    4

  • Unity Animator 之 轻松实现动画倒放的效果_第5张图片

    5

  • Unity Animator 之 轻松实现动画倒放的效果_第6张图片

    6

  • Unity Animator 之 轻松实现动画倒放的效果_第7张图片

    7

分步阅读

Unity Animator 之 轻松实现动画倒放的效果。在Unity开发中,Animator控制动画播放,有时候需要把控制的动画倒放,其实设置speed为负数即可实现倒放,但是,不是animator.speed 设置,这样设置不会起到倒放效果,而是要通过速度的协同控制参数,使用animator.setFloat("parameter",  -1 )实现倒放,下面介绍只有一个盒子打开动画,如何使用倒放实现盒子关闭,具体如下

工具/原料

  • Unity

方法/步骤

  1. 打开Unity,新建一个空工程,具体如下图

    Unity Animator 之 轻松实现动画倒放的效果_第8张图片

  2. 在工程中,导入一个带动画的盒子资源,然后添加资源到场景中,具体如下图

    Unity Animator 之 轻松实现动画倒放的效果_第9张图片

    Unity Animator 之 轻松实现动画倒放的效果_第10张图片

  3. 在工程中,新建一个脚本,然后双击或右键打开,进行脚本编辑,具体如下图

    Unity Animator 之 轻松实现动画倒放的效果_第11张图片

  4. 脚本中获取目标动画机,在设置一个参数控制动画机的speed,实现倒放,具体代码和代码说明如下图

    Unity Animator 之 轻松实现动画倒放的效果_第12张图片

  5. 脚本具体代码如下:

    using UnityEngine;

    public class AnimatorPalyBackwardsAnimation : MonoBehaviour {

        public Animator anim;

    // Use this for initialization

    void Start () {

    }

    // Update is called once per frame

    void Update () {

            if (Input.GetKeyDown(KeyCode.Space)) {

                ToPlayBackwardsAnimation();

            }

    }

        ///

        /// 倒放动画函数

        ///

        private void ToPlayBackwardsAnimation() {

            // 设置动画机参数,只要把速度设置为负数即可实现倒放

            anim.SetFloat("Speed", -4.0f);

        }

    }

  6. 脚本编译正确,回到Unity界面,在工程中新建一个动画机,把资源中的动画添加进去,然后添加一个脚本中,控制的参数,设置初始值,根据自己的需要设置,具体如下图

    Unity Animator 之 轻松实现动画倒放的效果_第13张图片

  7. 7

    选中要控制的动画,勾选 speed 下的 Multiplier 的 parameter,选中绑定控制的参数,具体如下图

    Unity Animator 之 轻松实现动画倒放的效果_第14张图片

  8. 8

    把脚本挂载到物体上,然后把物体添加的动画机赋值给脚本,具体如下图

    Unity Animator 之 轻松实现动画倒放的效果_第15张图片

  9. 9

    运行场景,可以看到盒子正常打开,按钮下 脚本绑定的空格键,出发修改speed,盒子就实现关闭盒子动画,这样就实现了动画倒放,具体如下图

你可能感兴趣的:(unity,1024程序员节)