You need to enable JavaScript to run this app. Unity复刻Asteroids游戏移动异常:玩家角色可左转但无法右转
优惠活动
大模型
产品
解决方案
定价
更多

Unity复刻Asteroids游戏移动异常:玩家角色可左转但无法右转

问题排查及解决方案

输入层排查

  • 先添加调试日志确认输入是否正常触发,修改代码如下:
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
{
    _turnDirection = 1.0f;
    Debug.Log("左转触发");
}
else if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
{
    _turnDirection = -1.0f;
    Debug.Log("右转触发");
}

运行游戏按D/右箭头,如果控制台没有输出「右转触发」,说明输入被拦截:

  • 检查Unity Input Manager中是否将D键、右箭头绑定了其他冲突的输入动作
  • 检查是否有其他挂载在同物体/全局的脚本也在监听D键/右箭头输入,并且调用了Event.Use()消费了输入事件

逻辑层排查

如果调试日志显示右转正常触发,说明是后续转向逻辑的问题:

  • 检查_turnDirection变量是否存在被覆盖的情况:确认这段if-else之后,有没有其他代码再次修改_turnDirection的值,比如错误的按键松开重置逻辑,会把D键赋值的-1强制改回1
  • 检查转向计算逻辑是否过滤了负值:比如旋转角度计算时有没有加Mathf.Max()之类的只保留正数的限制,或者旋转角度的区间限制只允许向左转的范围生效
  • 检查角色刚体/碰撞体配置:如果右转时刚好卡模,也会出现转不动的假象,可以临时关掉角色碰撞体测试是否恢复正常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 06:51:00