【发布时间】:2022-08-13 22:40:54
【问题描述】:
我正在使用 Unity 2021.3.5(最新版本),我用 C# 编写了一个用于玩家移动的脚本,水平输入(A、D)移动工作正常但垂直输入(W、S)不起作用。
代码:
-
发布代码时请使用代码块。不发布代码图像。
我正在使用 Unity 2021.3.5(最新版本),我用 C# 编写了一个用于玩家移动的脚本,水平输入(A、D)移动工作正常但垂直输入(W、S)不起作用。
代码:
您为垂直和水平方向分配了相同的变量名称moveDirection,请不要这样做。相反,将水平输入和垂直输入分配给两个不同的变量,例如 moveDirectionX 和 moveDirectionY。添加这两个向量给出了结果。
Vector3 moveDirectionX, moveDirectionY;
public void MovePlayer()
{
moveDirectionX = orientation.forward * verticalInput;
moveDirectionY = orientation.right * horizontalInput;
RB.AddForce((moveDirectionX + moveDirectionY).normalized * moveSpeed * 10f, ForceMode.Force);
}
【讨论】:
orienation.forward 而不是orientation.right),修复它,现在试试
在Unity window 中转到Edit -> Project Settings -> Input Manager -> Axes -> Vertical。
您可以更改Negative Button 和Positive button 字段中的输入按钮,也可以添加替代输入:Alt Negative Button 和Alt Positive Button。
【讨论】: