为什么Input.GetAxis('Mouse X')在构建时给出的值与编辑器不同?

时间:2015-10-30 16:31:26

标签: unity3d

一直试图弄清楚这几个小时。我的相机在编辑器(游戏模式)下工作正常但在我正在创建的OSX构建中速度太快。我将其缩小到Input.GetAxis("Mouse X")Input.GetAxis("Mouse Y")会产生不同的结果。我认为它不是最大值(我试过夹住它们),而是它们上升和下降的速度。

一些测试代码,创建一个新场景并附加到默认多维数据集:

private void LateUpdate ()
{
    transform.Rotate (new Vector3 (0, Input.GetAxis ("Mouse X"), 0));
}

移动鼠标时,立方体会旋转。它在构建中的移动速度比在编辑器中快得多。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这对我有用,我将鼠标移动转换为每秒鼠标移动,并在固定更新中应用旋转。

var mouseVel : Vector2;

function Update () {
    mouseVel = Vector2(Input.GetAxisRaw("Mouse X"),Input.GetAxisRaw("Mouse Y")) / Time.deltaTime;
}

function FixedUpdate () {
    transform.Rotate(0f,(mouseVel.x * Time.deltaTime),0f);
}

确保在Update中将鼠标移动除以Time.deltaTime,然后将新鼠标速度乘以fixedUpdate中的Time.deltaTime,因为fixedupdate中的Time.deltaTime等于固定时间样本。 希望这有助于某人。