📜  unity 鼠标滚轮轴 - C# (1)

📅  最后修改于: 2023-12-03 15:05:45.497000             🧑  作者: Mango

Unity 鼠标滚轮轴 - C#

在 Unity 中,鼠标滚轮轴(Mouse ScrollWheel)是常用的一种用户输入方式,可以用来实现一些交互操作,比如放大缩小场景、切换武器等等。在 C# 中,我们可以通过监听 Mouse ScrollWheel 来获取用户的滚轮事件。

获取鼠标滚轮轴的值

获取鼠标滚轮轴的值非常简单,只需要访问 Input 类的属性 Mouse ScrollWheel 就可以了。这个属性返回一个浮点数,表示用户滚动鼠标滚轮轴的值。如果鼠标向上滚动,该值会变成一个正值;如果鼠标向下滚动,该值会变成一个负值。

示例代码:

void Update()
{
    float scroll = Input.mouseScrollDelta.y;
    if (scroll > 0f)
    {
        Debug.Log("Mouse scroll up");
    }
    else if (scroll < 0f)
    {
        Debug.Log("Mouse scroll down");
    }
}

上面的代码片段中,我们通过访问 Input.mouseScrollDelta.y 属性获取了鼠标滚轮轴的值,然后根据这个值判断用户滚动鼠标的方向,并输出相应的日志信息。

滚轮缩放场景

鼠标滚轮轴常常被用来实现视图缩放操作,比如缩放场景视图。下面的代码片段演示了如何在 Unity 中使用鼠标滚轮轴来缩放场景视图。

public class SceneZoom : MonoBehaviour
{
    public float zoomSpeed = 1f;
    public float zoomMin = 1f;
    public float zoomMax = 10f;

    void Update()
    {
        float scroll = Input.mouseScrollDelta.y;
        float zoom = Camera.main.orthographicSize - scroll * zoomSpeed;
        Camera.main.orthographicSize = Mathf.Clamp(zoom, zoomMin, zoomMax);
    }
}

上面的代码片段中,我们创建了一个叫做 SceneZoom 的脚本,该脚本挂在场景的主摄像机上。在 Update 方法中,我们先获取鼠标滚轮轴的值,然后计算出摄像机的 orthographicSize(正交相机大小)属性值。最后,我们使用 Mathf.Clamp 方法限制摄像机的 orthographicSize 在一个范围内,从而达到了场景缩放的效果。

结语

本文介绍了如何在 Unity 中使用 C# 监听鼠标滚轮轴的事件。我们演示了如何获取鼠标滚轮轴的值,以及如何使用这个值来实现场景缩放操作。在实际项目中,鼠标滚轮轴还可以用来实现其他的交互操作,比如武器切换、快速滚动等等。