unity跳跃按钮_Unity——#04 跳跃

单纯只考虑跳跃的实现的话,只需考虑5个问题:

1.使用Trigger Type Signal触发型信号

2.要解决臭名昭著的问题:在一次触发时间里累积了两次的跳跃

3.锁死玩家输入,防止跳跃过程中的转向

4.锁死输入同时保留速度,使其能够在跳跃过程中向前移动

5.提供y分量的冲量,让其真正跳离地面

OK,摩拳擦掌,跃跃欲试。

1.使用触发型信号(Trigger Type Signal)

在实现Run中,使用的是按压型信号(Pressing Type Signal),与其不同的是,触发型信号的取信号时间段为当玩家键入指定键的那一刻,这就很符合用来实现跳跃,按一次跳一次,而不是按住一直跳。

首先宣告一个string变量记录触发跳跃的按键信息,然后宣告一个bool变量记录触发型信号:

public string keyB = "space";

public bool jump;

然后使用Input.GetKeyDown()来判断玩家是否键入了空格,是就返回true给jump变量;反之返回false。

jump = Input.GetKeyDown (keyB);

在实现Run时就有提到过Input.GetKeyDown(),它是在当用户键入指定键的那一帧时就返回true,就很符合用来实现触发型信号。

代码部分OK,再来看看Animator视窗,添加jump动画然后让其与ground联系起来(两者之间Make Transition) :

Animator

然后在ground到jump的Transition里消钩Has Exit Time,这意味着当接收到跳跃的触发信号时,不用等ground的动画播放完,直接中断后播放jump的动画。

消钩Has Exit Time

而jump到ground的Transition默认设置就好。

现在我们应该在Animator视窗里的Parameters那一栏(参数栏)创建一个Trigger型参数,命名为jump。

命名为jum

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值