解决动画衔接问题
创建枚举管理人物动画状态
初始状态Idle
//1、根据操作不同切换不同状态(声明状态)
private PlayerState p = PlayerState.Idle;
播放动画
创建方法 将三种动画写进去 放进Update
void PlayAnimation()
{
switch (p)
{
case PlayerState.Walk:
an.Play(StaticGameResources.runAimingForward);
ChangeState(PlayerState.Walk);
break;
case PlayerState.Idle:
an.Play(StaticGameResources.idleStandAiming);
break;
case PlayerState.Shoot:
an.Play(StaticGameResources.standShoot);
ChangeState(PlayerState.Shoot);
break;
default:
break;
}
}
切换状态
根据播放的动画切换相应的状态
获取当前动画播放的时间 walkTimer = an[StaticGameResources.runAimingForward].length;
强制等待动画播完,用if判断时间,再将动画赋值到初始状态,并重新获取动画播放时间
case PlayerState.Shoot:
shootTimer -= Time.deltaTime;
if (shootTimer<=0)
{
p = PlayerState.Idle;
shootTimer = an["standShoot"].length;
}
break;