public override void StateStart(object context)
        {
            base.StateStart(context);

            base.updateEnable = false;

            if (loadSceneName != "" && SceneManager.GetActiveScene().name != loadSceneName)
            {
                SceneManager.sceneLoaded += OnSceneLoaded;

                LoadSceneMode mode = asAdditiveLoad ? LoadSceneMode.Additive : LoadSceneMode.Single;
                if (asAsyncLoad)
                {
                    SceneManager.LoadSceneAsync(loadSceneName, mode);
                }
                else
                {
                    SceneManager.LoadScene(loadSceneName, mode);
                }
            }
            else
            {
                sceneRepository = FindObjectOfType <SceneRepositoryBase>();
                this.SceneLoaded();
            }
        }
        private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
        {
            SceneManager.sceneLoaded -= OnSceneLoaded;

            sceneRepository = FindObjectOfType <SceneRepositoryBase>();

            this.SceneLoaded();
        }