首页 > 学院 > 开发设计 > 正文

unity3d检测鼠标滑动停止事件

2019-11-06 08:03:29
字体:
来源:转载
供稿:网友

前几天项目中需要一个检测鼠标滑动停止的事件,发现Unity中没有,只有拖动停止等事件,所以在这里上传一个,如果有问题希望大神能指教一下。

  PRivate Action onScrollFinish;    private bool isScroll = false;    private bool isStartCoroutine = false;	// Use this for initialization	void Start () {        onScrollFinish += () => { Debug.Log("滚动结束"); };    }		// Update is called once per frame	void Update () {            if (Input.GetAxis("Mouse ScrollWheel") != 0f)        {            isScroll = true;            if (isStartCoroutine==false)            {                StartCoroutine("checkScroll");                isStartCoroutine = true;            }        }	}    IEnumerator checkScroll()    {        while (true)        {            if (isScroll)            {                isScroll = false;            }            else            {                if (onScrollFinish != null)                {                    onScrollFinish();                 }                StopCoroutine("checkScroll");                isStartCoroutine = false;                isScroll = false;            }            yield return new WaitForSeconds(0.2f);        }    }
	可以在start中注册你的滚动结束事件出发时想要调用的方法。
	这个方法是在update中实时监测滚轮是否滑动,当Input.GetAxis("Mouse ScrollWheel") != 0时表示鼠标正在滑动, 等待0.2秒是为了延迟一下等待鼠标停止时update检测。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表