简介

上一篇完成了角色的方向移动,接下来这一篇是完成奔跑与跳跃功能的制作。

制作流程

奔跑

1.在forward动画中添加动画

1_添加动画.png

2.把run动画导入

2_导入动画.png

3.修改动画值

3_修改动画值.png

脚本

跑动脚本

先定义一个名为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);
}

但此时移动到奔跑动画的转换很僵硬:
僵硬奔跑.gif
要让过渡动画平滑可以用Mathf.Lerp函数:

animr.SetFloat("forward",Mathf.Lerp(animr.GetFloat("forward"),pi.dMag * (pi.run ? 2 : 1),0.1f));

现在的效果:
平滑奔跑.gif

最后修改:2020 年 02 月 26 日
如果觉得我的文章对你有用,请随意赞赏