コード例 #1
0
ファイル: PlaneClickGrid.cs プロジェクト: 741645596/batgame
 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();
                 }
             }
         }
     }
 }