Unity---动画系统学习(3)---使用状态机来实现走、跑、转弯等的动画切换
1. 初始设置
用动画学习笔记(2)中方法,把动画全都切割好。
拖进状态机并设置箭头。并设置具体箭头触发的事件。

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

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. 效果图

Unity---动画系统学习(3)---使用状态机来实现走、跑、转弯等的动画切换的更多相关文章
- Unity3D之Mecanim动画系统学习笔记(七):IK(反向动力学)动画
什么是IK? IK(Inverse Kinematics)即反向动力学,即可以使用场景中的各种物体来控制和影响角色身体部位的运动,一般来说骨骼动画都是传统的从父节点到子节点的带动方式(即正向动力学), ...
- Unity3D之Mecanim动画系统学习笔记(一):认识Mecanim动画系统
Mecanim简介 Mecanim动画系统是Unity3D4.0开始引入的一套全新的动画系统,主要提供了下面4个方面的功能: 针对人形角色提供一套特殊的工作流. 动画重定向的能力,可以非常方便的把动画 ...
- Unity3D之Legacy动画系统学习笔记
Unity3D的Mecanim动画系统是非常强大的,而且作为Unity推荐的动画系统,其未来会完全代替老的一套动画系统,即Legacy动画系统.目前的情况是Mecanim与Legacy两套动画系统同时 ...
- Unity3D之Mecanim动画系统学习笔记(九):Blend Tree(混合树)
认识Blend Tree 我们在Animator Controller中除了可以创建一个State外还可以创建一个Blend Tree,如下: 那么我们看下新创建的Blend Tree和State有什 ...
- Unity3D之Mecanim动画系统学习笔记(五):Animator Controller
简介 Animator Controller在Unity中是作为一种单独的配置文件存在的文件类型,其后缀为controller,Animator Controller包含了以下几种功能: 可以对多个动 ...
- Unity3D之Mecanim动画系统学习笔记(二):模型导入
我们要在Unity3D中使用上模型和动画,需要经过下面几个阶段的制作,下面以一个人形的模型开发为准来介绍. 模型制作 模型建模(Modelling) 我们的美术在建模时一般会制作一个称为T-Pose( ...
- Unity3D之Mecanim动画系统学习笔记(十一):高级功能应用
动作游戏 还记得读书的时候熬夜打<波斯王子>的时光,我们的王子通过跳跃穿过墙壁的小洞.在高层建筑上进行攀爬和跳跃,还有在操作失误掉下高楼和触发必死机关后使用时之沙的时光倒流功能回归死亡之前 ...
- Unity3D之Mecanim动画系统学习笔记(三):Animation View
动画组件之间的关系 我们先看一张图: 这里我们可以看到,我们在GameObject之上绑定的Animator组件是控制模型进行动画播放的. 而其属性Controller则对应一个Animator Co ...
- Unity---动画系统学习(1)---在状态机中简单控制物体运动
1. 介绍 新建一个GameObject-Cube,在Window下添加Animation(快捷键ctrl+6).会添加用于播放动画的三个东西.物体上的Animator组件.Animator Cont ...
随机推荐
- mysql之约束以及修改数据表
数据约束的分类: ———————————————————————————————————————————————————— 外键约束的要求解析: //在my文件中的这句话代表着搜索引擎,如果不是的就需 ...
- 嵌入式Linux启动配置文件及脚本分…
使用Busybox制作根文件系统时,/etc目录非常重要,它包含了嵌入式Linux启动所需的配置文件及脚本.由于init进程,或者说linuxrc程序会解析inittab文件,因此就从/etc/ini ...
- ubuntu网速慢解决方法
ubuntu网速慢解决方法 (2011-04-02 09:58:21) 本人在Window7下装ubuntu10.10双系统,在window7下速度挺快的,到了ubuntu速度就慢了很 ...
- Android 创建项目出现No resource found that matches the given name Theme.AppCompat.Light
关于为何出现No resource found that matches the given name ‘Theme.AppCompat.Light’的原因 这边博客已经写的很清楚了 大家可以参考一下 ...
- 基于rank的优化
------------------siwuxie095 基于 rank 的优化 基于 size 的优化,在大多数情况下 ...
- ubuntu安装软件包apt-get和dpkg方法
1apt方法 安装软件 apt-get install softname1 softname2 softname3…… 卸载软件 apt-get remove softname1 softname2 ...
- win7桌面鼠标右键过慢的解决方案
由于Intel显卡驱动在桌面右键的加载项造成.解决方案:清理注册表中桌面右键加载项,点击开始,输入regedit,找到HKEY_CLASSES_ROOT\Directory\Background\sh ...
- 一张图看懂ASP.NET MVC5认证和授权过滤器的执行顺序
IAuthenticationFilter是MVC5中的新特性,它有2个关键方法: OnAuthentication OnAuthenticationChallenge 当IAuthenticatio ...
- 备忘录(Memento)模式
*备忘录模式(Memento):在不破坏封装性的前提下,捕获一个对戏的内部状态, * 并在该对象之外保存这个状态.这样以后就能恢复到原来保存的状态 *Originator(发起人): 负责创建一个备忘 ...
- screen工具
1.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远 ...