如何从触摸板获取鼠标滚动?

时间:2020-02-12 18:12:22

标签: c# unity3d touchpad

Input.mouseScrollDelta仅针对物理鼠标滚轮进行更改。对于触摸板两指滚动手势,它并没有改变(尽管滚动图标确实出现了,并且在其他程序中也可以使用)。 Input.GetAxis("Mouse ScrollWheel")具有相同的效果。 Input.touchCount(或任何与触摸相关的内容)仅适用于触摸屏,并不能帮助我在触摸板上进行滚动检查。所以我没主意了。我应该怎么知道我正在笔记本电脑的触摸板上滚动?

1 个答案:

答案 0 :(得分:2)

由于您已将其标记为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!");
        }
    }
}

调用OnGUI来呈现和处理GUI事件。

这意味着您的OnGUI实现可能每帧被调用几次(每个事件一次)。有关GUI事件的更多信息,请参见事件参考。如果将MonoBehaviour的enabled属性设置为false,则不会调用OnGUI()。