> 文章列表 > 【unity2D横板】【sunnyland】角色的跳跃

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

【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;}}

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

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