You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity 3D FPS游戏C#二段跳功能异常 跳跃高度不符合预期求助

问题排查

  • 核心错误是二段跳的判断逻辑嵌套在了地面起跳的判定分支内,单次按下空格触发地面跳跃时,会同时命中内层的二段跳判定,直接同时叠加两段跳跃力,所以总高度直接达到800
  • 缺少空中触发二段跳的独立判定逻辑,当前代码完全不支持在空中按空格触发二段跳的功能
  • 代码中secondJunp属于拼写错误,需和你定义的二段跳力变量名保持一致

修正后的实现代码

提前确认变量赋值:jumpForce = 500、secondJumpForce = 300、maxJumpCount = 2,替换原有逻辑即可:

void Start()
{
    rig = GetComponent<Rigidbody>();
}

void Update()
{
    //按键判定
    bool jump = Input.GetKeyDown(KeyCode.Space);

    //状态判定
    bool isGrounded = Physics.CheckSphere(groundDetector.position, 0.1f, ground);
    bool isSneaking = sneak;
    bool isSliding = !isSneaking && slide && !slideing && !slideStop && isGrounded;

    if (isGrounded)
    {
        print("vallah");
        jumpCount = 0;
    }

    //跳跃触发逻辑
    if (jump && jumpCount < maxJumpCount && !isSliding && !isSneaking)
    {
        //可选:清空垂直方向速度,避免下落时二段跳力度被抵消,可根据手感调整
        rig.velocity = new Vector3(rig.velocity.x, 0f, rig.velocity.z);
        float currentJumpForce = jumpCount == 0 ? jumpForce : secondJumpForce;
        //增加Impulse参数,保证力为瞬间施加,符合跳跃物理表现
        rig.AddForce(Vector3.up * currentJumpForce, ForceMode.Impulse);
        jumpCount++;
    }
}

内容的提问来源于stack exchange,提问作者Marcello Greulich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 13:15:05