多语言展示
当前在线:905今日阅读:176今日分享:34

Unity Animator 之 多个动画任意自由切换实现

Unity Animator 之 多个动画任意自由切换实现。在Unity中,一个 Animator 中有多个动画,设置触发切换参数,在多个动画中实现自由切换,具体方法如下
工具/原料
1

Unity

2

Animator

方法/步骤
1

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

2

在工程中带入一个带多动画的模型,方便后期控制,具体如下图

3

在工程中新建一个 Animator,可以命名为 “Che”,具体如下图

4

在 Animator 窗口下,添加对应动画,设置一个默认动画,要随意自由切换的动画在 AnyState下引线切换并添加一个 Int 参数控制切换动画,具体如下图

5

对每条引线设置,对应控制 Int 参数见图,按需取消每个动画的退出时间,设置中断方式,收回当前动画切换到下一个动画,取消自己触发自己的设置,其他一次类似设置即可,具体如下图

6

在工程中 新建一个脚本 “CheAnimatorController”,双击进行脚本编辑,具体如下图

7

“CheAnimatorController”脚本的具体代码和代码说明如下图

8

“CheAnimatorController”脚本的具体内容如下:using UnityEngine;public class CheAnimatorController : MonoBehaviour {    public Animator ani;        // 设置 Animator 参数,获取 Animator    private void Update()    {        // 按下不同键触发不同动画        if (Input.GetKeyDown(KeyCode.Alpha0))        {            SetCarIdle();        }        if (Input.GetKeyDown(KeyCode.Alpha1)) {            SetCarExplosive();        }        if (Input.GetKeyDown(KeyCode.Alpha2))        {            SetCarDoorOpen();        }        if (Input.GetKeyDown(KeyCode.Alpha3))        {            SetCarTrunckMove();        }        if (Input.GetKeyDown(KeyCode.Alpha4))        {            SetCarHoodOpen();        }    }    ///

    /// 设置 车 的状态为 Idle    ///     private void SetCarIdle()    {        ani.SetInteger('Animation_Int', 0);    }    ///     /// 设置 车 的状态为 Explosive    ///     private void SetCarExplosive() {        ani.SetInteger('Animation_Int', 1);    }    ///     /// 设置 车 的状态为 DoorOpen    ///     private void SetCarDoorOpen()    {        ani.SetInteger('Animation_Int', 2);    }    ///     /// 设置 车 的状态为 TrunckMove    ///     private void SetCarTrunckMove()    {        ani.SetInteger('Animation_Int', 3);    }    ///     /// 设置 车 的状态为 HoodOpen    ///     private void SetCarHoodOpen()    {        ani.SetInteger('Animation_Int', 4);    }}

9

脚本编译正确,回到unity,把脚本挂载到 Che 上,并对应赋值,具体如下图

10

运行场景,分别 按下 1,2,3,4,0 ,即可看到 che 的动画自由切换了,具体图下图

11

具体动画效果,如下图

注意事项
1

您的支持,是我们不断坚持知识分享的动力,若帮到您,还请帮忙投票有得;若有疑问,请留言

2

动画自由切换的方式很多,不局限于当前的方法

推荐信息