Как получить прокрутку мыши с сенсорной панели? - PullRequest
3 голосов
/ 12 февраля 2020

Input.mouseScrollDelta изменяется только для физического колеса прокрутки мыши. Он не меняется для жеста прокрутки двумя пальцами на сенсорной панели (хотя значок прокрутки действительно появляется и в других программах работает). Input.GetAxis("Mouse ScrollWheel") имеет тот же эффект. Input.touchCount (или что-либо касающееся касания) предназначено только для сенсорных экранов и не помогает мне выполнить собственную проверку прокрутки на сенсорной панели. Так что у меня нет идей. Откуда мне вообще знать, что я прокручиваю на сенсорной панели ноутбука?

1 Ответ

2 голосов
/ 17 февраля 2020

Поскольку вы пометили его как Unity3d, возможно, это поможет вам преодолеть: https://answers.unity.com/questions/356767/how-to-get-scrollwheel-values-using-a-laptop-touch.html

public void OnGUI()
 {
     if(Event.current.type == EventType.ScrollWheel)
         // do stuff with  Event.current.delta
         Debug.Log(Event.current.delta);
 }

Документацию OnGui можно найти здесь: https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnGUI.html

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 150, 100), "I am a button"))
        {
            print("You clicked the button!");
        }
    }
}

On GUI вызывается для обработки и обработки событий GUI.

Это означает, что ваша реализация On GUI может быть вызвана несколько раз за кадр (один звонок на событие). Для получения дополнительной информации о событиях GUI см. Ссылку на событие. Если для свойства MonoBehaviour установлено значение false, On GUI () вызываться не будет.

...