unity动画(Animator)的正播和到播,指定动画的播放和判断当前是否在播放某个动画,以及动画是否播放完成

标题动画的倒着播放

1.在Animator下进行创建一个float类型的参数IS
2.点开需要进行倒放的动画,在Insport面板会出现把刚才新建的参数进行指定一下在这里插入图片描述

3.写脚本
void Test()
{
Animator animator = gameObject.GetComponent();
animator.SetFloat(“IS”,-1);
}
如果没有任何反应尝试一下改变一下位置,查看一下拥有该动画的游戏对象的当前的状态是不是就是在动画倒着播放后的最后一帧。

播放指定的动画以及进行重新播放动画

这个很简单就直接调用一个函数就可以了
在这里插入图片描述
第一个参数是指当前动画剪辑的名称
第二个参数是当前的动画在哪一个层
第三个参数为0时就可以完成某个动画剪辑的重新播放
指定动画播放就把动画剪辑的名称更换一下,就是哪一个动画进行播放。(就是把第一个动画剪辑的名称换成需要及进行播放的动画剪辑播放)

判断当前是否在播放某个动画

这个分为两个步骤
首先获取当前动画所在的层,然后根据动画剪辑的名称进行判断是否在播放某个动画。
void Test()
{
Animator ani = gameObject.GetComponent();
//获取当前动画所在的层
AnimatorStateInfo animatorStateInfo=ani.GetCurrentAnimatorStateInfo(0);
//根据动画的名称进行判断时否在播放某个动画
bool b=animatorStateInfo.IsName(“动画的名称”);
}

判断某个动画是否播放完成

//获取动画所在的层
AnimatorStateInfo animatorInfo = ani.GetCurrentAnimatorStateInfo(0);

//进行判断指定的动画是否播放完成 cube是指动画的名称
if ((animatorInfo.normalizedTime > 1.0f) && (animatorInfo.IsName(“cube”)))//normalizedTime: 范围0 – 1, 0是动作开始,1是动作结束
{
ani.SetBool(“IS”, false);
}

发布了35 篇原创文章 · 获赞 3 · 访问量 2050

猜你喜欢

转载自blog.csdn.net/weixin_43333566/article/details/103821024