void Update() { if (MainCameraM.s_Instance.CheckIsZooming() || MainCameraM.s_Instance.CheckCameraMove()) { PutCanvasM.ShowRoomGridUI(false); } if (PutCanvasM.CanOperate == false) { return; } if (Input.touchCount >= 2) { PutCanvasM.ShowRoomGridUI(false); m_bTouchMoveChange = true; m_roomGridTouchDown = null; } // MainCameraM.s_Instance.EnableDrag(true); if (m_bMouseDown) { if (!m_isDrag) { float click = mouseClickThreshold; click *= click; m_vtotalmouseDelta += m_vlastFirstTouch - GetTouchPos(0); m_vlastFirstTouch = GetTouchPos(0); m_mag = m_vtotalmouseDelta.sqrMagnitude; if (m_mag > click) { m_isDrag = true; } else { //没有发生移动地图 或 没有发生长按 要判定 if (!m_isDrag && !m_bLongTouch) { //长按判定 if (!m_isDrag && m_roomGridTouchDown != null) { if (Time.time - m_fMouseDownTime > 0.5f) { m_bLongTouch = true; } //没有发生移动地图,但有发生长按,则更换选中房间,并将m_bTouchMoveChange=false if (m_bLongTouch) { CanvasCore buildRoomCoreTouchDown = m_roomGridTouchDown.GetBuildRoom(); TouchMove selNewTouchMov = PutCanvasM.GetTouchMoveByCore(buildRoomCoreTouchDown); TouchMove selOldeTouchMove = TouchMoveManager.GetCurTouchMove(); if (selNewTouchMov != null && selNewTouchMov != selOldeTouchMove) { m_bTouchMoveChange = false; TouchMoveManager.SetCurTouchMove(selNewTouchMov); selNewTouchMov.OnMouseDown(); } } } } } } if (m_isDrag) { //按下是选中的是原选中房间,则直接移动该房间 //长按时会自动将最新选中房间,并将m_bTouchMoveChange设置为false if (!m_bTouchMoveChange) { MainCameraM.s_Instance.EnableDrag(false); TouchMove curTouchMove = TouchMoveManager.GetCurTouchMove(); if (null != curTouchMove) { PutCanvasM.ShowRoomGridUI(false); //TouchMoveManager.ShowCanvas(true); PutCanvasM.ShowRoomGridUI(false); curTouchMove.MoveBuild(); } } } } }