简单动画播放控制就是同一时间只有一个动作,那么unity animation 控制动作之间的切换呢?比如静止idle,走walk,跑run,跳跃jump,攻击attack这些动作都是全身动作,同一时间只应该做一种动作。下面我们就来举例说明unity animation 控制动作之间的切换是怎样完成的。

       在现今的游戏中Animation Blending是一项保证游戏动画顺畅过渡的基本的特性.动画师创建的动画例如: walk 循环, run 循环, idle原地空闲动画 或射击动画.在游戏的任何时间点你都有可能从空闲站立转换到走动,反之亦然. 当然你不希望两个不同的动作之间突然跳转, 你需要动画平滑过渡。

       而这个问题的解决就依赖动画融合技术. 在Unity中你可以让同一个角色拥有任意数量的动画.所有这些动画融合添加成为一个总的动画.        首先我们来为一个角色添加两个动画原地空闲站立和走动并平滑的使这两个动画过渡. 为了使我们在写脚本时简单些, 首先我们设置动画的 Wrap Mode为 Loop. 然后关闭 Play Automatically来让我们的脚本来独占动画的播放。

       我们第一个动画脚本很简单; 我们需要一些方法来探查角色移动的有多快, 然后在走和站立之间淡入淡出. 在这个简单的测试中我们使用 pre-setup input axes。
 

function Update () {
  if (Input.GetAxis("Vertical") > 0.2)
    animation.CrossFade ("walk");
  else
    animation.CrossFade ("idle");
}

下面我们来让这个脚本运行:
1.       创建一个js脚本 Assets->Create Other->Javascript.
2.       把代码拷贝进去
3.       把脚本拖拽给角色 character (It needs to be the same GameObject as the animation)
点击Play 按钮, 当你按上下键时角色会走动,松开上下键时角色站立不动。