예제 #1
0
    private void DragEvent(TouchControllersState state, Vector3 point1, Vector3 point1Delta, float EventTime)
    {
        /*
         *  Событие перемешения обьекта, имеет 3 состояния Старт,работа,конец
         *  Происхотит при попадании в Drag обьекты, без учета пальцев попавших в элементы UI.
         *  При В старте нужно реализовать выдиление здания
         *  При В работа перемешение, в конце проверку на отпускания браг обьекта.
         *  Дополнительные проверки не нужны
         *  point1 - палец 1
         *  point1Delta - дульта перемешения пальца 1
         *  EventTime - Время нахождения пальца в одном состоянии
         */
#if DEBUG_LOG
        Log.Write("DragEvent: " + state.ToString() + " p1:" + point1.ToString() + " dp1:" + point1Delta.ToString());
#endif
        DragModel dragModel = new DragModel()
        {
            stateT      = state,
            EventTime   = EventTime,
            point1      = point1,
            point1Delta = point1Delta
        };

        MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Drag, dragModel);
    }
예제 #2
0
    public override void BreakTouch(TouchGroup touches, float touchOneStateMoveTime = 0.0f, float touchOneStateTime = 0.0f, CheckingRayIntoObject checkingRay = null)
    {
        if (stateT == TouchControllersState.TCS_End)
        {
            return;
        }
        Touch[] touchOne    = touches.touchOne;
        Touch[] touchTwo    = touches.touchTwo;
        Touch[] touchTree   = touches.touchTree;
        Vector3 point1      = Vector3.zero;
        Vector3 point2      = Vector3.zero;
        Vector3 point1Delta = Vector3.zero;
        Vector3 point2Delta = Vector3.zero;

        if (touchOne != null)
        {
            point1      = touchOne[0].position;
            point1Delta = touchOne[0].deltaPosition;
        }
        if (touchTwo != null)
        {
            point2      = touchTwo[0].position;
            point2Delta = touchTwo[0].deltaPosition;
        }
        ZoomModel zoom = new ZoomModel
        {
            point1      = point1,
            point1Delta = point1Delta,
            point2      = point2,
            point2Delta = point2Delta,
            stateT      = stateT
        };

        if (stateT == TouchControllersState.TCS_Start)
        {
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Zoom, zoom);
            zoom.stateT = TouchControllersState.TCS_Action;
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Zoom, zoom);
            zoom.stateT = TouchControllersState.TCS_End;
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Zoom, zoom);
        }
        else if (stateT == TouchControllersState.TCS_Action)
        {
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Zoom, zoom);
            zoom.stateT = TouchControllersState.TCS_End;
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Zoom, zoom);
        }
    }
예제 #3
0
    private void HoldEvent(TouchControllersState stateT, Vector3 point1, float EventTime, bool isHoldOnDragObject)
    {
        /*
         *  Событие Зашатия пальца на экране, не имеет состояний срабатывает зажатии пальца в одном месте, без учета пальцев попавших в элементы UI.
         *  isHoldOnDragObject - параметер определяюший произходил ли там над Drag обьектом
         */
#if DEBUG_LOG
        Log.Write("HoldEvent p1:" + point1.ToString() + " EventTime:" + EventTime.ToString() + " isDragObject:" + isHoldOnDragObject.ToString());
#endif
        HoldModel tapModel = new HoldModel()
        {
            stateT             = stateT,
            point1             = point1,
            EventTime          = EventTime,
            isHoldOnDragObject = isHoldOnDragObject
        };
        MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Hold, tapModel);
    }
    private void TapEvent(TouchControllersState stateT, Vector3 point1, int tapCount, bool isTapOnDragObject)
    {
        tapGlobalCount++;

        /*
         *  —обытие тапа по экрану, не имеет состо¤ний срабатывает при отпускании тапа, без учета пальцев попавших в элементы UI.
         *  isTapOnDragObject - параметер определ¤юший произходил ли там над Drag обьектом
         */
#if DEBUG_LOG
        Log.Write("TapEvent p1:" + point1.ToString() + " tapCount:" + tapCount.ToString() + " isDragObject:" + isTapOnDragObject.ToString());
#endif
        TapModel tapModel = new TapModel()
        {
            stateT            = stateT,
            point1            = point1,
            tapCount          = tapCount,
            isTapOnDragObject = isTapOnDragObject,
            tapGlobalCount    = tapGlobalCount
        };
        MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Tap, tapModel);
    }
예제 #5
0
    public override void BreakTouch(TouchGroup touches, float touchOneStateMoveTime = 0.0f, float touchOneStateTime = 0.0f, CheckingRayIntoObject checkingRay = null)
    {
        if (stateT == TouchControllersState.TCS_End)
        {
            return;
        }
        Touch[] touchOne    = touches.touchOne;
        Touch[] touchTwo    = touches.touchTwo;
        Touch[] touchTree   = touches.touchTree;
        Vector3 point1      = Vector3.zero;
        Vector3 point1Delta = Vector3.zero;

        if (touchOne != null)
        {
            point1      = touchOne[0].position;
            point1Delta = touchOne[0].deltaPosition;
        }
        DragModel dragModel = new DragModel()
        {
            stateT      = stateT,
            EventTime   = touchOneStateTime,
            point1      = point1,
            point1Delta = point1Delta
        };

        if (stateT == TouchControllersState.TCS_Start)
        {
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Drag, dragModel);
            dragModel.stateT = TouchControllersState.TCS_Action;
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Drag, dragModel);
            dragModel.stateT = TouchControllersState.TCS_End;
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Drag, dragModel);
        }
        else if (stateT == TouchControllersState.TCS_Action)
        {
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Drag, dragModel);
            dragModel.stateT = TouchControllersState.TCS_End;
            MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Drag, dragModel);
        }
    }
예제 #6
0
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    private void SwipeEvent(TouchControllersState _stateT, Vector3 point1, Vector3 point1Delta, float EventTime)
    {
        /*
         *  Событие протягивания пальца, имеет 3 состояния Старт,работа,конец
         *  Происхотит при резком здвижении пальца куда либо, без учета попадания в Drag обьекты, без учета пальцев попавших в элементы UI
         *  Дополнительные проверки не нужны
         *  point1 - палец 1
         *  point1Delta - дульта перемешения пальца 1
         *  EventTime - Время нахождения пальца в одном состоянии
         */
#if DEBUG_LOG
        Log.Write("SwipeEvent: " + _stateT.ToString() + " p1:" + point1.ToString() + " dp1:" + point1Delta.ToString());
#endif
        SwipeModel swipe = new SwipeModel
        {
            point1      = point1,
            point1Delta = point1Delta,
            EventTime   = EventTime,
            stateT      = _stateT
        };
        MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Swipe, swipe);
    }
예제 #7
0
    private void ZoomEvent(TouchControllersState _stateT, Vector3 point1, Vector3 point2, Vector3 point1Delta, Vector3 point2Delta)
    {
        /*
         *  Событие зума, имеет 3 состояния Старт,работа,конец
         *  Происхотит при работе двумя пальцами, без учета пальцев попавших в элементы UI
         *  Дополнительные проверки не нужны
         *  point1 - палец 1
         *  point2 - палец 2
         *  point1Delta - дульта перемешения пальца 1
         *  point2Delta - дульта перемешения пальца 2
         */
#if DEBUG_LOG
        Log.Write("ZoomEvent: " + _stateT.ToString() + " p1:" + point1.ToString() + " dp1:" + point1Delta.ToString() + " p2:" + point2.ToString() + " dp2:" + point2Delta.ToString());
#endif
        ZoomModel zoom = new ZoomModel
        {
            point1      = point1,
            point1Delta = point1Delta,
            point2      = point2,
            point2Delta = point2Delta,
            stateT      = _stateT
        };
        MainContextView.DispatchStrangeEvent(EventGlobal.E_TouchAndMouseGestures_Zoom, zoom);
    }
예제 #8
0
 public void OnKey(InputActionStateModel inputActionStateModel)
 {
     MainContextView.DispatchStrangeEvent(RootEvents.E_InputOnKeyAction, inputActionStateModel);
 }