public void LoadScene <T>(Action callback, object passedParams) where T : IStateController, new() { onNewSceneLoaded = callback; //Don't show transition screen if it's our first load. if (!isTransitionDone) { m_transitionScreen.StartFade(FadeType.FadeOut, onTransitionShown); } newScene = new T(); newScene.Load(onSceneLoaded, passedParams); }