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检测。
新闻热点
疑难解答