当前鼠标滚轮的滚动量。(只读)
注意:此 API 是旧版 Input
类的一部分,不建议在新项目中使用。此处提供文档是为了支持使用旧版 Input Manager 和 Input 类的旧项目。对于新项目,您应该使用更新的 Input System 包。(了解更多)。
Input.mouseScrollDelta 存储在 Vector2.y 属性中。(Vector2.x 值将被忽略。)Input.mouseScrollDelta 可以是正数(向上)或负数(向下)。当鼠标滚轮未旋转时,该值为零。请注意,带有中心滚轮的鼠标在 PC 上很常见。现代 macOS
使用触控板上双指上下移动来模拟中心滚动。需要根据滚动速度调整 mouseScrollDelta 返回的值。在下面的示例中,使用 scale
为 0.1f
。
请注意,mouseScrollDelta 是只读的。
using System.Collections; using System.Collections.Generic; using UnityEngine;
// Input.mouseScrollDelta example // // Create a sphere moved by a mouse scrollwheel or two-finger // slide on a Mac trackpad.
public class ExampleClass : MonoBehaviour { private Transform sphere; private float scale;
void Awake() { GameObject go = GameObject.CreatePrimitive(PrimitiveType.Sphere); sphere = go.transform;
// create a yellow quad go = GameObject.CreatePrimitive(PrimitiveType.Quad); go.transform.Rotate(new Vector3(90.0f, 0.0f, 0.0f)); go.transform.localScale = new Vector3(4.0f, 4.0f, 4.0f); go.GetComponent<Renderer>().material.color = new Color(0.75f, 0.75f, 0.0f, 0.5f);
// change the camera color and position Camera.main.clearFlags = CameraClearFlags.SolidColor; Camera.main.transform.position = new Vector3(2, 1, 5); Camera.main.transform.Rotate(0, -160, 0);
scale = 0.1f; }
void OnGUI() { Vector3 pos = sphere.position; pos.y += Input.mouseScrollDelta.y * scale; sphere.position = pos; } }