C# Input.getaxis(“鼠标Y”)始终返回0

C# Input.getaxis(“鼠标Y”)始终返回0,c#,unity3d,C#,Unity3d,我曾尝试制作一个玩家控制器,通过WSAD或箭头键进行控制,效果很好,但当我尝试添加在X-Y轴上记录鼠标移动的部分时,出现了错误 Input.GetAxis(“鼠标X”)工作正常,但无论我做什么,Input.GetAxis(“鼠标Y”)只返回零。。。我试着检查输入管理器内部,没有任何错误,也没有任何遗漏,我试着清除所有PlayerPref,但这不起作用,我也试着重新启动我的整个电脑,但也不起作用 我不知道该怎么办,我什么都试过了,但没有运气 如果你们中有谁能帮助我,那将是一个很大的帮助 谢谢 使用

我曾尝试制作一个玩家控制器,通过WSAD或箭头键进行控制,效果很好,但当我尝试添加在X-Y轴上记录鼠标移动的部分时,出现了错误

Input.GetAxis(“鼠标X”)工作正常,但无论我做什么,Input.GetAxis(“鼠标Y”)只返回零。。。我试着检查输入管理器内部,没有任何错误,也没有任何遗漏,我试着清除所有PlayerPref,但这不起作用,我也试着重新启动我的整个电脑,但也不起作用

我不知道该怎么办,我什么都试过了,但没有运气 如果你们中有谁能帮助我,那将是一个很大的帮助 谢谢

使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类控制器:单行为
{
私人刚体;
公共int速度=250,跳跃爪=250,旋转速度=20,最大角度=130;
私人动画师A;
公众游戏对象来了;
//在第一帧更新之前调用Start
void Start()
{
RB=GetComponent();
A=GetComponent();
}
//每帧调用一次更新
无效更新()
{
//轮换
transform.eulerAngles+=新矢量3(0,Input.GetAxis(“鼠标X”),0)*Time.deltaTime*旋转速度;
if(come.transform.eulerAngles.x+(Input.GetAxis(“鼠标Y”)*Time.deltaTime*旋转速度)

}

除非您更改了输入管理器的设置,否则实际输入不会有问题。您可以通过键入以下内容来确保问题不在输入系统中(确保它不在您以前编写的if语句中):

如果你这样做并测试游戏,上下移动你的鼠标,然后如果你得到一个值,那就告诉我们,问题在于If语句,如果它仍然返回0,那么unity就有问题。以下是if声明的内容:

if (Came.transform.eulerAngles.x + (Input.GetAxis("Mouse  Y") * Time.deltaTime * RotationSpeed) < MaxAngle) {
    print(Input.GetAxis("Mouse Y"));
    Came.transform.eulerAngles += new Vector3(Input.GetAxis("Mouse Y"), 0, 0) * Time.deltaTime * RotationSpeed;
}
我完全删除了if语句,因为我们使用了Mathf.Clamp。现在我们不必测试它是否超过或低于,因为如果这个。你应该更早地乘以Time.deltaTime和RotationSpeed,因为如果你稍后再乘以它,它将高于/低于夹具。然后我使用局部Euler角度,因为如果播放器装备旋转,那么相机也会旋转,并且使用局部方法。然后我使用print语句来测试一切

我希望这能有所帮助,如果有些东西不起作用,我一定会编辑这篇文章

 print(Input.GetAxis(“Mouse Y”);
if (Came.transform.eulerAngles.x + (Input.GetAxis("Mouse  Y") * Time.deltaTime * RotationSpeed) < MaxAngle) {
    print(Input.GetAxis("Mouse Y"));
    Came.transform.eulerAngles += new Vector3(Input.GetAxis("Mouse Y"), 0, 0) * Time.deltaTime * RotationSpeed;
}
(Came.transform.eulerAngles.x + (Input.GetAxis("Mouse  Y") * Time.deltaTime * RotationSpeed) < MaxAngle)
void Camera()
{
    float MouseY = Input.GetAxis(“Mouse Y”) * Time.deltaTime * RotationSpeed;
    Mathf.Clamp(MouseY, -89.5f, 89.5f);
    Came.transform.localEulerAngles = new Vector3(MouseY, 0, 0);
    print(MouseY);
}