拿到一个人物模型,这个模型带有骨骼数据,但是没有动画
我们可以去AssetStore下载通用动画包
然后创建一个动画控制器
创建一个行为树
给其添加参数:两个方向的速度
双击BlendTree节点
进入第二层
设置BlendTree类型
设置BlendTree参数
为各种情况添加对应的动画
站立状态
静止、走、跑
动画参数的二维坐标系
每一个点对应一个动画的状态
红色的点是原点
通过这个可以检查动画的方向是否正确
在脚本中传入动画系统所需要的参数
//动画控制器
Animator anim;
//当前位移
Vector3 move;
void Start()
{
//获取动画组件
anim = GetComponent();
}
//获取按键输入
float v = Input.GetAxis("Vertical");
float h = Input.GetAxis("Horizontal");
//获取位移
move = new Vector3(h,0,v);
void PlayAnim()
{
//按下左边Shift键行走
if (Input.GetKey(KeyCode.LeftShift))
{
move *= 0.5f;
}
//传入动画所需要的参数
anim.SetFloat("SpeedX", move.x);
anim.SetFloat("SpeedY", move.z);
}
效果
蹲下状态
静止、蹲着走
//是否蹲下
bool isCrouched = false;
void Crouch()
{
if(Input.GetKeyDown(KeyCode.K))
{
//状态反转
isCrouched = isCrouched ? false : true;
if (isCrouched)
anim.SetBool("isCrouched",true);
else
anim.SetBool("isCrouched", false);
}
}
跳跃状态
注意:需要把过度条件中的退出时间取消,不然跳跃的动画可能无法播放或者播放不及时



