【Unity3D】设置玩家跳跃次数

自定义设置玩家跳跃次数的逻辑就是通过定义一个计数器来检测跳跃次数
当 计数器 == 0 时说明玩家在地面(跳跃次数为0);
当 计数器 == 1 时说明玩家跳跃了一次并且在空中
当 计数器 == 2 时说明玩家跳跃了两次并且在空中
......

设置玩家单次跳跃
1) 判断玩家跳跃次数如果为0(计数器是否 == 0)则进行跳跃动作
2) 增加计数器(使玩家无法进行二次跳跃)
3) 使用OnCollisionEnter方法重置计数器

设置玩家多次跳跃
1) 判断玩家的现有跳跃次数是否小于x(计数器 < x)从而进行跳跃动作
2) 增加计数器(使玩家达到跳跃次数后无法进行x+1次跳跃)
3) 使用OnCollisionEnter方法重置计数器


代码实现如下:
设置玩家跳跃次数为1

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    private Rigidbody playerRB; // 创建一个刚体的容器
    public float jumpForce = 5; // 初始化跳跃力量
    public int jumpCount = 0; // 设置计数,0代表在地面上;非0代表跳跃中
    
    void Start()
    {
        playerRB = GetComponent<Rigidbody>(); // 在游戏开始时获取玩家的刚体组件的内容
    }
    
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space) && jumpCount == 0)  // 判断玩家如果按下空格并且跳跃次数为0则执行跳跃 
        {
            playerRB.AddForce(Vector3.up * jumpForce,ForceMode.Impulse); // 使用ADDForce方法,为玩家的刚体添加向上的力和瞬时力
            jumpCount++;
        }
    }

    private void OnCollisionEnter(Collision collision) // 当玩家的碰撞体接触到地面的碰撞体时调用
    {
        jumpCount = 0; // 当玩家落地时,Reset jumpCount
    }
}

设置玩家跳跃次数为2 — (修改jumpCount的判断值即可)

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    private Rigidbody playerRB; // 创建一个刚体的容器
    public float jumpForce = 5; // 初始化跳跃力量
    public int jumpCount = 0; // 设置计数,0代表在地面上;非0代表跳跃中
    
    void Start()
    {
        playerRB = GetComponent<Rigidbody>(); // 在游戏开始时获取玩家的刚体组件的内容
    }
    
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space) && jumpCount < 2 ) // 判断玩家按下空格且跳跃次数没有超过两次则可以跳跃
            playerRB.AddForce(Vector3.up * jumpForce,ForceMode.Impulse); // 使用ADDForce方法,为玩家的刚体添加向上的力和瞬时力
            jumpCount++;
        }
    }

    private void OnCollisionEnter(Collision collision) // 当玩家的碰撞体接触到地面的碰撞体时调用
    {
        jumpCount = 0; // 当玩家落地时,Reset jumpCount
    }
}

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢海风呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值