Unity2D游戏制作教程 | 9.实现人物跳跃
通过代码实现按键后人物跳跃
一 、添加控制
双击之前生成的PlayerInputController、添加一个Jump控制系统,这里我们可以添加键盘和手柄的控制方法,键盘使用空格跳跃,手柄可以使用A键或者X键来跳跃。
如下图:

代码实现
先创建一个变量用来存储我们给刚体(玩家)施加力,
如下面的代码:
public float jumpForce;
//这里声明一个变量 jumpForce 用来存储我们的跳跃力 这个值用来控制我们的跳跃力的大小
这里我们可以将这个力添加给我们的Player,也就是玩家上,那么添加时我们用到了事件委托,修改Awake方法:

+= 表示注册一个函数
- 然后我们实现一下Jump方法
这里可以自动生成Jump方法
这里添加一个Debug是为了检测我们按下空格时这个方法有没有被执行,我们这里可以运行一下游戏试试,如果没问题,就会在Console中显示Jump,这个类似于Java中输出一个文字来测试。
具体实现一个跳跃的方法

这个时候我们还不能实现跳跃,因为你的JumoForce还没有设置值,就和Speed一样,不设置值的话人物是跳跃不起来的,我们这里可以设置为下图:

- 这样可以得到一个比较舒服的跳跃力度。
- 但是这里人物思考一下一直跳跃的所以需要设置人物会落下,不要跳到屏幕外(下一个检测环境设置),以及跳到墙边上会挂在墙上。
- 添加物理材质 ——解决人物挂在墙上
- 在Settings文件夹中创建一个新的文件夹命名为PhysicsMetrial—物理材质,在这个文件夹中创建一个2D物理材质

将这个物理材质的摩擦力设置为0,

然后将我们人物的碰撞体组件的物理材质设置为Normal,这个时候碰撞到墙壁是,人物就不会再墙壁上挂住了。

浙公网安备 33010602011771号