//overide in the specific effects to have them behave appropriately
    public virtual void OnTransitionShift(s_Transition.e_transitionStates state)
    {
        switch (state)
        {
        case s_Transition.e_transitionStates.NULL:
            break;

        case s_Transition.e_transitionStates.StartTransition:
            break;

        case s_Transition.e_transitionStates.WaitingForTransitionSceneToLoad:
            break;

        case s_Transition.e_transitionStates.WaitingForTransitionToReachUnloadPoint:
            break;

        case s_Transition.e_transitionStates.WaitingForSceneSwap:
            break;

        case s_Transition.e_transitionStates.StartSceneSwap:
            break;

        case s_Transition.e_transitionStates.TransitionEnd:
            break;
        }
    }
 protected void callTranstionChangeStateEvent(s_Transition.e_transitionStates newState)
 {
     SwitchToTransitionState?.Invoke(newState);
 }