【unity2D横板】【sunnyland】角色的跳跃

这两天在做一个2D横板的小游戏,不过有点打不起精神,果然还是得写博客才能又学习的动力嘛哈哈哈

请看代码咯

这里是有长跳和短跳系统

public float jumpForce;
public float jumpAddForce;
public float jumpTime;
public float jumpStartTime;
public bool  isjump;//是否在跳跃  
private void jump()
    {
        if (Input.GetKeyDown(KeyCode.Space))//按下按钮的时候开始检测
        {
            isjump = true;
            rb2d.velocity = Vector2.up * jumpForce;//Vectors.up是一种简写形式,单看这个单词也能明白意思吧,本来我也设想过用改变坐标的形式来进行跳跃但是很违和,所以我找到了添加力的方式来进行跳跃,看起来很自然,舒服。
            jumpTime = jumpStartTime;

        }
        if(Input.GetKey(KeyCode.Space)&&isjump == true)//这里是长按跳跃键时最多上升到什么时候
        {
            if(jumpTime > 0)
            {
                rb2d.velocity = Vector2.up * jumpForce;
                jumpTime -= Time.deltaTime;
            }
        }
        else
        {
            isjump = false;//跳跃时间到,停止
        }
        if (Input.GetKeyUp(KeyCode.Space))//放下跳跃键也停止跳跃
        {
            isjump = false;
        }
        
    }

这一套模式还挺自然的,无论是跳跃还是落地都遵循物理系统,方便得很,修改坐标的模式就显得很蹩脚了,十分不推荐。

效果如下,由于跳跃时间等等都可以设置,所以还是很好用的

猜你喜欢

转载自blog.csdn.net/qq_63499305/article/details/130250703