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

Unity开发问题:蹲伏/滑行时角色无法移动如何解决?

蹲伏/滑行时角色无法移动的修复方案

问题描述

使用Unity开发游戏时,角色处于蹲伏或滑行状态时无法执行移动操作,只有恢复站立状态后移动功能才会正常工作。尝试过移除滑行功能、重写完整代码等方案,问题仍未解决。

问题根源

查看提供的PlayerMovement脚本,核心问题出在Movement方法中的这段代码:

//If sliding down a ramp, add force down so player stays grounded and also builds speed
if (crouching && grounded && readyToJump) {
    rb.AddForce(Vector3.down * Time.deltaTime * 3000);
    return;
}

当角色满足crouching && grounded && readyToJump条件时,return语句会直接跳出Movement方法,导致后续添加移动力的代码完全无法执行,因此角色无法响应任何移动输入。

修复步骤

修改上述代码块,移除return语句,确保后续的移动逻辑能够正常运行:

//If sliding down a ramp, add force down so player stays grounded and also builds speed
if (crouching && grounded && readyToJump) {
    rb.AddForce(Vector3.down * Time.deltaTime * 3000);
    // 移除return,让移动力添加代码可以执行
}

额外说明

脚本中已存在蹲伏时的速度限制逻辑:

// Movement while crouching
if (grounded && crouching) maxSpeed = 7f;

这段代码会自动将蹲伏状态下的最大速度调整为7f,无需额外修改即可实现蹲伏时的减速效果。


内容的提问来源于stack exchange,提问作者Kryptons Helpful Helpvideos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:25:37