Unity 2d人物跳跃 土狼时间,输入缓冲

一、土狼时间土狼时间,Grace time指的是 人物在地面/平台 边缘即将掉落的时候 仍有机会进行跳跃动作其原理是 在人物掉落判定时开始 计时,在设置的土狼时间内,可以 按键跳跃原始的判定能否跳跃的条件一般是: if (isGround) jump();现在改为: if(isGround || graceTimer>0) { jump(); graceTimer = 0;
摘要由CSDN通过智能技术生成

一、土狼时间

土狼时间,Grace time

指的是 人物在地面/平台 边缘即将掉落的时候 仍有机会进行跳跃动作
其原理是 在人物掉落判定时开始 计时,在设置的土狼时间内,可以 按键跳跃

原始的判定能否跳跃的条件一般是:

        if (isGround)
            jump();

现在改为:

       if(isGround || graceTimer>0{
   
            jump()
  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity 2D 中实现跳跃需要以下步骤: 1. 给角色添加刚体组件,并设置重力为正向下的值。 2. 给角色添加碰撞体,并设置为合适的大小和形状。 3. 在角色的脚下添加一个空物体作为检测是否着地的点。 4. 编写脚本,在 Update 函数中检测是否按下跳跃键,如果按下则给角色一个向上的力。 5. 在脚本中检测角色是否着地,如果着地则可以再次跳跃,否则不能跳跃。 以下是一个示例脚本: ``` using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { public float jumpForce = 10f; // 跳跃力度 public Transform groundCheck; // 检测是否着地的点 public float groundRadius = 0.2f; // 检测是否着地的半径 public LayerMask whatIsGround; // 着地的 Layer private Rigidbody2D rb; private bool isGrounded = false; void Start() { rb = GetComponent<Rigidbody2D>(); } void FixedUpdate() { isGrounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround); } void Update() { if (isGrounded && Input.GetKeyDown(KeyCode.Space)) { rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse); } } } ``` 在该脚本中,我们使用了 OverlapCircle 函数来检测是否着地。在 FixedUpdate 函数中更新 isGrounded 变量的值。在 Update 函数中检测是否按下跳跃键,如果按下则给角色一个向上的力。如果 isGrounded 为 true,则可以再次跳跃

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值