Unity3D开发学习⑤ 角色动画,动画切换
1.角色动画
给角色添加动画需要用到的是动画组件
首先添加一个Animator
然后看到参数里还需要一个Controller
回到根目录创建一个装动画的文件夹 ,里面单独给Player的动画也新建个文件夹
然后新建Animator Controller 这里命名为idle(代表player常态动画
再打开animation面板
拖长就可以看见完整的面板(这里已经吧controller拖入Animator
在这里新建一个动画
看旁边的时间轴可以知道unity播放的动画是帧动画的形式,所以只要有动画的帧就可以直接拖入里面
这里在素材包里可以找到动画的帧
拖进去即可
然后就可以点击播放在游戏预览中看到player鬼畜抖动
改变动画速度可以直接拖动两端改变时长,或者修改Samples(采样率
将动画速度调顺眼后就可以继续了
这个选项是调整是否循环播放动画,
选中player, 打开Animator面板
发现idle动画已经被添加上了
然后就可以准备加上跑步的动画了
2.动画切换
首先确定需求:不动的时候播放常态动画,动起来的时候播放跑步动画
很明显条件就是动起来
而判断有没有动起来的话,恰好之前脚本里的getAxisRaw就不失为一个能用的法子
那么还是先添加跑步动画吧
导入贴图前别忘了设置大小,不然就好玩了
然后稍微设置一下就可以准备打开Animator界面开干了
这个run动画是需要自己拖入添加的
然后就需要为两个动画建立联系(平滑过渡)
右键选择MakeTransition在两个动画上链接确定关系
选择过渡箭头可以发现属性中的条件列表
这里可以在面板中选择添加条件
此处添加一个浮点数参数 命名为Running
然后条件列表就可以新建刚才创建的参数
选择阈值和大于还是小于触发就搞腚了一个条件
然后点击setting开始设置动画的开始时间什么的
结束时间全部去掉,过渡时间也全部去掉
然后根据是否停止跑步将Running这个判断标志位是大于还是小于处理添加上即可
然后便又要回归代码了
先打开PlayerController
想要将参数暴露给animtor调用,就像声明mPlayer外部组件就可以被设置为player,在代码中声明animator变量即可外放给其他组件(动画组件)
然后就可以在位移中同步设置animator的信息
因为需要浮点数,所以可以直接吧faceDirection套进去,只是要注意左右移动有正负之分
不应该一边跑一边不跑吧
所以需要用到数学函数进行绝对值处理
然后就可以进游戏预览了
就是跳跃还不是很自然,下次再加上跳跃动画吧