2

我目前正在 Unity3D 中开发游戏。游戏中的一项功能是同时按下 LMB 和 RMB。

我的问题是我用自己的鼠标 Trust/15315 测试了我的代码,它无法同时注册两个按钮,而只能注册其中的两个按钮。然后我用其他 3 只鼠标测试了相同的代码,它运行良好。

我的问题是:我的鼠标是否因损坏而无法正常工作?或者这是我鼠标的一个功能?是否有其他鼠标可以这样做(不能同时检测到两个鼠标按钮)?

按照要求,我添加了使用的代码:

using UnityEngine;
using System.Collections;

public class Gestures : MonoBehaviour {

    void Update () {

        print (Input.GetMouseButton(0)+" "+Input.GetMouseButton(2) + " "+ Input.GetMouseButton(1));

    }   
}

另外我想补充一点,左边和中间的按钮可以一起使用,但右边的按钮不能与其他两个一起使用。

4

2 回答 2

1

很难说 Unity 是否打算在不同的鼠标和操作系统上获得干净的单击实现。

我遇到了类似的问题,发现从Input.GetMouseButtonDownInput.GetMouseButtonUp事件中读取鼠标按钮状态更可靠。

于 2013-05-27T08:02:29.237 回答
1

然后我用其他 3 只鼠标测试了相同的代码,它运行良好。

听起来它只是你的鼠标。追踪确切的问题很棘手,因为该过程中有很多步骤。(硬件-> 板载软件-> 无线-> 驱动程序-> 操作系统-> Unity)该过程中任何时候的草率实施理论上都可能导致您所描述的问题。

正如其他人所提到的,即使在最好的时候,鼠标事件也可能有点小故障。好消息是,根据您具体需要做什么,通常有一个变通方法。

如果您的目标是处理单击和双击,这可能很有用:同时单击和双击功能

如果您正在寻找单击并按住的行为,您可能希望查看通过Input.GetAxis映射鼠标按钮。

于 2013-05-29T03:12:42.220 回答