/// <summary> /// 鼠标抬起事件 /// </summary> /// <param name="eventData"></param> public void OnPointerUp(PointerEventData eventData) { geoController.HandleClickLockButton(0); isPinterDown = false; StopAllCoroutines(); SetActiveEdgeImage(false); uiEdge = UIEdge.None; StartCoroutine(edgeJudge()); }
/// <summary> /// 鼠标退出UI的事件 /// </summary> /// <param name="eventData"></param> public void OnPointerExit(PointerEventData eventData) { if (isPinterDown == false) { StopAllCoroutines(); SetActiveEdgeImage(false); uiEdge = UIEdge.None; } }
/// <summary> /// 边缘判断协程 /// </summary> /// <returns></returns> IEnumerator edgeJudge() { yield return(new WaitForEndOfFrame()); while (true) { RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, Input.mousePosition, canvas.worldCamera, out v2PointEnter); // Debug.Log("_pos:" + v2PointEnter); uiEdge = GetCurrentEdge(v2PointEnter); Debug.Log("edge:" + uiEdge.ToString()); SetActiveEdgeImage(false); if (canResize) { switch (uiEdge) { case UIEdge.None: SetActiveEdgeImage(false); break; case UIEdge.Left: Left_Image.gameObject.SetActive(true); Left_Image.localPosition = new Vector3(Left_Image.localPosition.x, v2PointEnter.y - panelRectTransform.localPosition.y, Left_Image.localPosition.z); break; case UIEdge.Down: Down_Image.gameObject.SetActive(true); Down_Image.localPosition = new Vector3(v2PointEnter.x - panelRectTransform.localPosition.x, Down_Image.localPosition.y, Down_Image.localPosition.z); break; default: SetActiveEdgeImage(false); break; } } yield return(new WaitForEndOfFrame()); } }