关于Unity动画系统几个名词概念,需要了解一下:
Animator:动画控制器,控制Mecanim动画系统的接口。
Animation:animation组件用于播放动画
AnimationClip:动画剪辑片段,储存基于关键帧的动画,是用于Animation来播放动画。
Animation编辑面板:此面板可以进行动画的调整,crtl+6打开animation编辑面板,默认是不能进行任何操作的,要选中做动画的精灵才可以创建动画。
关于创建2D动画的方法有很多,百度搜一下不再累赘,因为美术资源已经做好了部分切图处理,所以我直接拿已经切好的动画来进行处理:

分别制作了Idle,open,eat,unhappy,play五个动画剪辑片段。并制作了一个新的Animator用来作为Player的控制。

之后再Animator建立联系,添加变量

添加各种条件,为下一步脚本控制做准备。

为Player添加PlayerObject.cs组件测试
1 1 public enum playerAnimState { 2 2 /// <summary> 3 3 /// 玩耍状态 4 4 /// </summary> 5 5 play, 6 6 /// <summary> 7 7 /// 默认状态 8 8 /// </summary> 9 9 idle, 1010 /// <summary> 1111 /// 张嘴状态 1212 /// </summary> 1313 open, 1414 /// <summary> 1515 /// 吞食状态 1616 /// </summary> 1717 eat, 1818 /// <summary> 1919 /// 失败状态 2020 /// </summary> 2121 unhappy, 2222 } 2323 2424 public class PlayerObject : MonoBehaviour { 2525 /// <summary> 2626 /// 动画状态 2727 /// </summary> 2828 public playerAnimState playerState; 2929 /// <summary> 3030 /// 动画控制器 3131 /// </summary> 3232 public Animator playerAnimator; 3333 3434 /// <summary> 3535 /// 改变玩家状态方法 3636 /// </summary> 3737 /// <param name="state">玩家状态</param> 3838 public void ChangeState(playerAnimState state) { 3939 switch (state) 4040 { 4141 case playerAnimState.play: 4242 playerAnimator.SetBool("IsPlay",true); 4343 playerAnimator.SetBool("IsIdle",false); 4444 break; 4545 case playerAnimState.idle: 4646 playerAnimator.SetBool("IsIdle", true); 4747 playerAnimator.SetBool("IsOpen", false); 4848 playerAnimator.SetBool("IsPlay", false); 4949 break; 5050 case playerAnimState.open: 5151 playerAnimator.SetBool("IsOpen", true); 5252 playerAnimator.SetBool("IsIdle", false); 5353 break; 5454 case playerAnimState.eat: 5555 playerAnimator.SetBool("IsEat", true); 5656 playerAnimator.SetBool("IsOpen", false); 5757 break; 5858 case playerAnimState.unhappy: 5959 playerAnimator.SetBool("IsUnhappy", true); 6060 playerAnimator.SetBool("IsOpen", false); 6161 break; 6262 default: 6363 break; 6464 } 6565 } 6666 }