2D Animation
创建动画
新建Animation和Animator
调出Animation面板(Window/Animation/Animation)
Hierarchy选中添加动画的元素(Player)
点击Animation中Create创建新的动画
创建动画的同时,Animator也创建出来了。
创建帧序列动画
将一组帧序列动画拖入Animation面板即可创建一个新的动画,
调整Samples采样值(每秒钟播放的图片数)
Animator动画控制器
Animator设置
- Parameter 添加变量
- Base Layer 编辑状态
- Setting 迁移设置
- Condition 迁移条件
脚本中修改Animator的变量
定义animator,定义完后记得在Inspector中赋值
1 | public Animator animator; // 动画控制器 |
修改速度Speed变量的值(SetFloat):
1 | horizontalMove = Input.GetAxisRaw("Horizontal“) * moveSpeed; |
由于跳跃动画并不是在跳跃期间循环播放,而是在跳跃开始到跳跃结束之间只播放一次,
因此需要将Any Status → player_jump 之间的转化Setting的Can Transition To Self关闭。
我们知道角色何时跳起,如何知道何时落地?
同样的,知道角色何时开始蹲下,如何知道角色何时起来?
CharacterController2D脚本提供两个回调函数:
- OnLand 跳跃结束回调函数
- OnCrouch 蹲下结束回调函数
在playerMovement中添加两个函数
1 | // 跳跃结束回调函数 |
设置这两个函数与CharacterController2D中对应:
注意:OnCrouch函数有一个bool类型参数,代表是否蹲下,因此在关联时,需要选用上面的Dynamic bool