private static void SceneManager_sceneLoaded(Scene arg0, LoadSceneMode arg1)
        {
            if (playModeController == null)
            {
                return;
            }

            if (!wasEntryOpened)
            {
                if (arg0.path == playModeController.EntryScene.SceneAssetPath)
                {
                    wasEntryOpened = true;
                }

                if (!wasEntryOpened)
                {
                    return;
                }
            }

            if (string.IsNullOrEmpty(playModeController.goToOnPlay))
            {
                playModeController.ignoreEntryCall = false;
                playModeController = null;
                return;
            }

            if (arg0.path == playModeController.GetSceneByName(playModeController.goToOnPlay).SceneAssetPath)
            {
                playModeController.ignoreEntryCall = false;
                playModeController = null;
            }
            else
            {
                if (playModeController.Transitioner == null)
                {
                    playModeController.OnTransitionerChanged += PlayModeController_OnTransitionerChanged;
                }
                else
                {
                    playModeController.TransitionToScene(playModeController.goToOnPlay);
                }
            }

            SceneManager.sceneLoaded -= SceneManager_sceneLoaded;
        }
        /// <summary>
        /// Load the scene
        /// </summary>
        /// <param name="sceneName">The name of the scene to load</param>
        public void LoadScene(string sceneName)
        {
            if (SceneManager == null)
            {
                Debug.LogError("Scene manager null, cannot load scene");
                return;
            }

            if (RequireUnlocked)
            {
                SceneManager.TransitionIfUnlocked(sceneName);
            }
            else
            {
                SceneManager.TransitionToScene(sceneName);
            }
        }