广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

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

    来源:网络收集  点击:  时间:2024-05-12
    【导读】:
    Unity Animator 之 多个动画任意自由切换实现。在Unity中,一个 Animator 中有多个动画,设置触发切换参数,在多个动画中实现自由切换,具体方法如下工具/原料moreUnityAnimator方法/步骤1/11分步阅读

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

    2/11

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

    3/11

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

    4/11

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

    5/11

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

    6/11

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

    7/11

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

    8/11

    “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();

    }

    }

    /// summary

    /// 设置 车 的状态为 Idle

    /// /summary

    private void SetCarIdle()

    {

    ani.SetInteger(Animation_Int, 0);

    }

    /// summary

    /// 设置 车 的状态为 Explosive

    /// /summary

    private void SetCarExplosive() {

    ani.SetInteger(Animation_Int, 1);

    }

    /// summary

    /// 设置 车 的状态为 DoorOpen

    /// /summary

    private void SetCarDoorOpen()

    {

    ani.SetInteger(Animation_Int, 2);

    }

    /// summary

    /// 设置 车 的状态为 TrunckMove

    /// /summary

    private void SetCarTrunckMove()

    {

    ani.SetInteger(Animation_Int, 3);

    }

    /// summary

    /// 设置 车 的状态为 HoodOpen

    /// /summary

    private void SetCarHoodOpen()

    {

    ani.SetInteger(Animation_Int, 4);

    }

    }

    9/11

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

    10/11

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

    11/11

    具体动画效果,如下图

    注意事项

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

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

    UNITYANIMATOR多个动画多动画任意切换多动画自由切换
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_741049.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 18:04:29  耗时:0.031
    0.0308s