0

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

我用谷歌搜索了如何做到这一点,发现我必须使用 Input.GetAxis("Mouse ScrollWheel"); 我使用这段代码并打印它。我仍然总是得到 0 的值。有什么想法吗?我只需要先解决如何获得价值,剩下的自己想办法。

代码思路:

function Update () {
    print(WeaponNumber);

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

2 回答 2

1

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

于 2011-04-25T06:06:18.453 回答
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));
        }
    }

如果您向上滚动,这基本上会增加 WeaponNumber,如果您向下滚动,则会减少

于 2021-03-08T07:48:03.970 回答