如何获得鼠标滚动输入?

时间:2011-04-15 10:36:28

标签: unity3d mousewheel unityscript

我正在尝试在Unity3D中进行简单的武器更改。 最好的方法是使用鼠标滚轮,就我所见。

我搜索了如何做到这一点,发现我必须使用Input.GetAxis(“Mouse ScrollWheel”);我用这段代码打印出来。我总是得到0的值。 有任何想法吗?我只需要先解决如何获得价值,然后自己弄清楚其余部分。

代码理念:

function Update () {
    print(WeaponNumber);

    if(Input.GetAxis("Mouse ScrollWheel")){
        WeaponNumber += Input.GetAxis("Mouse ScrollWheel");
    }
}

3 个答案:

答案 0 :(得分:1)

嘿朋友, 您可以使用Input.GetAxisRaw而不是Input.GetAxis。 GetAxis的值经过平滑处理,范围为-1 .. 1,但GetAxisRaw为-1或0或1.您可以删除If语句。因为当没有滚轮发生时,该值自动为零。

答案 1 :(得分:0)

因此,Input.GetAxis("Mouse ScrollWheel") 如果不滚动返回 0,向上滚动返回 0.1,向下滚动返回 -0.1。所以这段代码的解决方案是:

    function Update() {
        if (Input.GetAxis("Mouse ScrollWheel") != 0) {
            WeaponNumber += Mathf.FloorToInt(Input.GetAxis("Mouse ScrollWheel") * 10));
        }
    }

如果你向上滚动,这基本上会增加武器数量,如果你向下滚动则减少

答案 2 :(得分:0)

尝试“GetAxisRaw”,因为它只返回 0、1 和 -1。