U4S1L3——鼠标输入

本章代码关键字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Mouse                                   //鼠标类
Mouse.current //获取当前鼠标设备
ButtonControl //鼠标对象类
mouse.leftButton //鼠标左键
mouse.middleButton //鼠标中键
mouse.rightButton //鼠标右键
mouse.forwardButton //鼠标侧前键
mouse.backButton //鼠标侧后键
buttonControl.wasPressedThisFrame //鼠标按键按下
buttonControl.wasReleasedThisFrame //鼠标按键抬起
buttonControl.isPressed //鼠标按键按住
mouse.position.ReadValue() //获取鼠标当前位置
mouse.delta.ReadValue() //获取鼠标两帧之间的一个偏移向量
mouse.scroll.ReadValue() //获取鼠标中键滚轮的方向向量

获取当前鼠标设备

需要引用命名空间UnityEngine.InputSystem
新输入系统提供了对应的输入设备类,帮助我们对某一种设备输入进行检测

1
Mouse mouse = Mouse.current;

鼠标各键位 按下 抬起 长按

同键盘输入一样,首先要得到某一个按键,通过 鼠标类mouse​对象 点出 各种鼠标按键ButtonControl​对象 来获取,格式如下mouse.___Button

1
ButtonControl buttonControl;

鼠标各键位

  • 鼠标左键

    1
    buttonControl = mouse.leftButton;
  • 鼠标中键

    1
    buttonControl = mouse.middleButton;
  • 鼠标右键

    1
    buttonControl = mouse.rightButton;
  • 鼠标向前向后键(有侧键的鼠标)

    1
    2
    buttonControl = mouse.forwardButton;
    buttonControl = mouse.backButton;

鼠标按键按下抬起长按

  • 按下

    1
    2
    3
    4
    5
    6
    7
    void Update()
    {
    if (Mouse.current.leftButton.wasPressedThisFrame)
    {
    print("鼠标左键按下");
    }
    }
  • 抬起

    1
    2
    3
    4
    5
    6
    7
    void Update()
    {
    if (Mouse.current.leftButton.wasReleasedThisFrame)
    {
    print("鼠标左键抬起");
    }
    }
  • 按住

    1
    2
    3
    4
    5
    6
    7
    void Update()
    {
    if (Mouse.current.leftButton.isPressed)
    {
    print("鼠标左键按住");
    }
    }

鼠标位置相关

  • 鼠标当前位置

    坐标原点在左下角,坐标以屏幕分辨率为准

    1
    mouse.position.ReadValue();
  • 鼠标两帧之间的一个偏移向量

    1
    mouse.delta.ReadValue();
  • 鼠标中键滚轮的方向向量

    1
    mouse.scroll.ReadValue();