在2-1的效果中,还有一个细节问题,那就是腾空时若不一直按着W,就不能维持抛物线运动;若一直按着W,又会不受控制的二段跳。
这是因为速度的输入是实时检测的,在空中也会检测,若此时输入为零,那么向上的速度没等重力抵消就提早归零,因此重力骤增;
重力代码原本的思路是:让人物升到顶就将向上的速度归零,紧接着自由落体。但当玩家一直输入时,这个归零就无效了,所以会二段跳
办法1:将人物腾空前的速度保留,且在空中不接受输入//已实现
Update中,在输入前加个条件
private void Update()
{
if (isTouched == true)//腾空时保留速度
{
velocity = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
}
}