【问题标题】:Unity 3D Input.GetAxis("Horizontal") not working [closed]Unity 3D Input.GetAxis(\"Horizo​​ntal\") 不工作 [关闭]
【发布时间】:2022-08-13 22:40:54
【问题描述】:

我正在使用 Unity 2021.3.5(最新版本),我用 C# 编写了一个用于玩家移动的脚本,水平输入(A、D)移动工作正常但垂直输入(W、S)不起作用。

代码:

  • 发布代码时请使用代码块。发布代码图像。

标签: c# unity3d


【解决方案1】:

您为垂直和水平方向分配了相同的变量名称moveDirection,请不要这样做。相反,将水平输入和垂直输入分配给两个不同的变量,例如 moveDirectionXmoveDirectionY。添加这两个向量给出了结果。

Vector3 moveDirectionX, moveDirectionY;

public void MovePlayer()
{
    moveDirectionX = orientation.forward * verticalInput;
    moveDirectionY = orientation.right * horizontalInput;

    RB.AddForce((moveDirectionX + moveDirectionY).normalized * moveSpeed * 10f, ForceMode.Force);
}

【讨论】:

  • 我试过了,但它所做的只是使垂直输入工作,但现在水平输入不起作用
  • @DatBoiChonkey,我犯了一个小错误(orienation.forward 而不是orientation.right),修复它,现在试试
  • 我会检查它是否有效
【解决方案2】:

Unity window 中转到Edit -> Project Settings -> Input Manager -> Axes -> Vertical

您可以更改Negative ButtonPositive button 字段中的输入按钮,也可以添加替代输入:Alt Negative ButtonAlt Positive Button

Input Manager

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    相关资源
    最近更新 更多