Наследование: strange.extensions.context.impl.ContextView
Пример #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
 private void OnDestroy()
 {
     if (dispatcher != null)
     {
         Debug.Log("Escape Key EVENT dispatcher RemoveListener");
         dispatcher.RemoveListener(EventGlobal.E_AppBackButton, onAppBackButton);
     }
     else
     {
         Debug.Log("Escape Key EVENT RemoveListenerStrangeEvent RemoveListener");
         MainContextView.RemoveListenerStrangeEvent(EventGlobal.E_AppBackButton, onAppBackButton);
     }
 }
Пример #3
0
    protected override void Start()
    {
#if UNITY_EDITOR
        if (IsDebug)
        {
            AppLoadCommand.isNormalStart = false;
        }
#endif
        GameObject.DontDestroyOnLoad(this);
        instance = this;

        RunContext();
    }
Пример #4
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);
        }
    }
Пример #5
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);
    }
Пример #7
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);
        }
    }
Пример #8
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);
    }
Пример #9
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);
    }
Пример #10
0
 public MainContext(MonoBehaviour ctxView, bool autoMap)
     : base(ctxView, autoMap)
 {
     MainCtx          = (MainContextView)ctxView;
     MainCtx.Packages = MainCtx.GetComponentsInChildren <StrangePackage>().ToList();
 }
Пример #11
0
 public void OnKey(InputActionStateModel inputActionStateModel)
 {
     MainContextView.DispatchStrangeEvent(RootEvents.E_InputOnKeyAction, inputActionStateModel);
 }
Пример #12
0
 void Start()
 {
     GameObject.DontDestroyOnLoad(this);
     instance     = this;
     isRunContext = false;
 }
Пример #13
0
 public MainContext(MonoBehaviour ctxView, bool autoMap)
     : base(ctxView, autoMap)
 {
     MainCtx = (MainContextView)ctxView;
     MainCtx.Packages = MainCtx.GetComponentsInChildren<StrangePackage>().ToList();
 }