Unity---动画系统学习(3)---使用状态机来实现走、跑、转弯等的动画切换

2023-10-28 22:59

本文主要是介绍Unity---动画系统学习(3)---使用状态机来实现走、跑、转弯等的动画切换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 初始设置

用动画学习笔记(2)中方法,把动画全都切割好。
拖进状态机并设置箭头。并设置具体箭头触发的事件。
1355434-20190426160454219-979370466.png


在状态机左侧中添加参数,Float和Int类型参数只能从-1~1之间变化
Float:Speed,控制行走
Bool:IsSpeedUp,控制加速
Float:Horizontal,控制转弯
1355434-20190426160809585-236229856.png

2. 代码设置

    private int speedID = Animator.StringToHash("Speed");private int isSpeedID = Animator.StringToHash("IsSpeedUp");private int horizontalID = Animator.StringToHash("Horizontal");private Animator anim;void Start () {anim = gameObject.GetComponent<Animator>();}void Update () {anim.SetFloat(speedID, Input.GetAxis("Vertical"));if (Input.GetKeyDown(KeyCode.LeftShift)){anim.SetBool(isSpeedID, true);}else if (Input.GetKeyUp(KeyCode.LeftShift)){anim.SetBool(isSpeedID, false);}anim.SetFloat(horizontalID, Input.GetAxis("Horizontal"));}

anim.SetFloat();:给参数赋值

Input.GetAxis("Vertical");:Unity中自带的按键返回函数,当按下W和S键或↑↓键时,会返回正负的小数,按键时间长短影响大小。
像Vertical这样的虚拟轴在Edit---Project Setting---Input中设置

Animator.StringToHash;:把Speed字符串转化为HashID。
private int speedID = Animator.StringToHash("Speed");
anim.SetFloat(speedID, Input.GetAxis("Vertical"));
==>等效于
anim.SetFloat("Speed", Input.GetAxis("Vertical"));
这样转换后更不容易出错,更高效,推荐使用!!!!

3. 效果图

1355434-20190426163030043-2010438099.gif

转载于:https://www.cnblogs.com/Fflyqaq/p/10775046.html

这篇关于Unity---动画系统学习(3)---使用状态机来实现走、跑、转弯等的动画切换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/296548

相关文章

Python的pip在命令行无法使用问题的解决方法

《Python的pip在命令行无法使用问题的解决方法》PIP是通用的Python包管理工具,提供了对Python包的查找、下载、安装、卸载、更新等功能,安装诸如Pygame、Pymysql等Pyt... 目录前言一. pip是什么?二. 为什么无法使用?1. 当我们在命令行输入指令并回车时,一般主要是出现以

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

Java Jackson核心注解使用详解

《JavaJackson核心注解使用详解》:本文主要介绍JavaJackson核心注解的使用,​​Jackson核心注解​​用于控制Java对象与JSON之间的序列化、反序列化行为,简化字段映射... 目录前言一、@jsonProperty-指定JSON字段名二、@JsonIgnore-忽略字段三、@Jso

MySQL中隔离级别的使用详解

《MySQL中隔离级别的使用详解》:本文主要介绍MySQL中隔离级别的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录引言undo log的作用MVCC的实现有以下几个重要因素如何根据这些因素判断数据值?可重复读和已提交读区别?串行化隔离级别的实现幻读和可

使用Python和SQLAlchemy实现高效的邮件发送系统

《使用Python和SQLAlchemy实现高效的邮件发送系统》在现代Web应用中,邮件通知是不可或缺的功能之一,无论是订单确认、文件处理结果通知,还是系统告警,邮件都是最常用的通信方式之一,本文将详... 目录引言1. 需求分析2. 数据库设计2.1 User 表(存储用户信息)2.2 CustomerO

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel

在React聊天应用中实现图片上传功能

《在React聊天应用中实现图片上传功能》在现代聊天应用中,除了文字和表情,图片分享也是一个重要的功能,本文将详细介绍如何在基于React的聊天应用中实现图片上传和预览功能,感兴趣的小伙伴跟着小编一起... 目录技术栈实现步骤1. 消息组件改造2. 图片预览组件3. 聊天输入组件改造功能特点使用说明注意事项

VSCode中配置node.js的实现示例

《VSCode中配置node.js的实现示例》本文主要介绍了VSCode中配置node.js的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一.node.js下载安装教程二.配置npm三.配置环境变量四.VSCode配置五.心得一.no

debian12安装docker的实现步骤

《debian12安装docker的实现步骤》本文主要介绍了debian12安装docker的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录步骤 1:更新你的系统步骤 2:安装依赖项步骤 3:添加 docker 的官方 GPG 密钥步骤

9个SpringBoot中的自带实用过滤器使用详解

《9个SpringBoot中的自带实用过滤器使用详解》在SpringBoot应用中,过滤器(Filter)是处理HTTP请求和响应的重要组件,SpringBoot自带了许多实用的过滤器,如字符编码,跨... 目录1. CharacterEncodingFilter - 字符编码过滤器功能和配置手动配置示例2