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

Unity 2021.3.5中C#玩家移动脚本Vertical输入(W、S)失效求助

Unity玩家移动Vertical输入失效的排查方案

1. 检查代码中的Vertical轴调用

确保你在代码中正确调用了Vertical输入轴,拼写必须完全匹配(区分大小写):

float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical"); // 注意是大写V开头的"Vertical"

同时要确认移动逻辑中用到了verticalInput,比如构建移动向量时要包含Z轴(假设是3D场景):

Vector3 moveDirection = new Vector3(horizontalInput, 0f, verticalInput);
moveDirection = transform.TransformDirection(moveDirection); // 转为本地空间
// 后续用CharacterController.Move或Rigidbody.AddForce等方法应用移动

如果代码里只用到了Horizontal的数值,那W/S键自然不会有反应。

2. 验证Unity输入管理器的设置

打开Edit > Project Settings > Input Manager,找到Vertical轴条目,检查以下设置:

  • Positive Button:确认绑定的是w
  • Negative Button:确认绑定的是s
  • Gravity和Sensitivity:数值是否正常(默认Gravity 3,Sensitivity 3即可)
    如果Vertical轴被误修改或删除,直接点击右上角的Reset按钮恢复默认设置。

3. 排查其他干扰因素

  • 检查是否有其他脚本监听了W/S键的输入,导致输入被拦截
  • 如果使用了第三方输入系统(比如Input System包),要确认没有混用旧的Input Manager API,两种输入系统不能同时生效
  • 测试场景中是否有碰撞体阻挡了角色的前后移动,导致视觉上没反应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:18:39