简介
上一篇完成了角色的方向移动,接下来这一篇是完成奔跑与跳跃功能的制作。
制作流程
奔跑
1.在forward动画中添加动画
2.把run动画导入
3.修改动画值
脚本
跑动脚本
先定义一个名为run的bool类型变量,当‘left shift’被按下时为true,否则为false。
public string AKey = "left shift";
public bool run;
void Update()
{
run = Input.GetKey(AKey);
}
然后在修改动画值时需要在原来的基础上做一些修改,当run为真时动画值和移动向量movingVec就乘2:
void Update()
{
animr.SetFloat("forward",pi.dMag * (pi.run ? 2 : 1));
movingVec = pi.dMag * model.transform.forward * walkSpeed * (pi.run ? 2 : 1);
}
但此时移动到奔跑动画的转换很僵硬:
要让过渡动画平滑可以用Mathf.Lerp函数:
animr.SetFloat("forward",Mathf.Lerp(animr.GetFloat("forward"),pi.dMag * (pi.run ? 2 : 1),0.1f));
现在的效果: