Exemple #1
0
        GameObject GetRoot(Constants.SceneName sceneName)
        {
            GameObject scene;

            _scenes.TryGetValue(sceneName, out scene);
            return(scene);
        }
Exemple #2
0
        void BringToTop(Constants.SceneName sceneName)
        {
            _showList.Remove(sceneName);
            _showList.AddFirst(sceneName);

            var scene = GetRoot(sceneName);

            scene.transform.SetAsFirstSibling();
        }
Exemple #3
0
        public T GetScript <T>(Constants.SceneName sceneName)
        {
            var scene = GetRoot(sceneName);

            if (scene != null)
            {
                return(scene.GetComponent <T>());
            }

            return(default(T));
        }
Exemple #4
0
        public void Unload(Constants.SceneName sceneName)
        {
            var scene = GetRoot(sceneName);

            if (scene != null)
            {
                scene.GetComponent <IScene>().Unload();

                _scenes.Remove(sceneName);
                _showList.Remove(sceneName);

                var fullpath = string.Format("Scenes/{0}", scene.name);
                if (ResourceLoader.isAlive)
                {
                    ResourceLoader.Instance.Unload(fullpath);
                }
            }
        }
Exemple #5
0
        void LoadRoot(Constants.SceneName sceneName, bool unload)
        {
            if (unload)
            {
                UnloadAll();
            }

            nowScene = sceneName;
            var scene = GetRoot(sceneName);

            if (scene == null)
            {
                var fullpath = string.Format("Scenes/{0}", sceneName);
                StartCoroutine(ResourceLoader.Instance.Load <GameObject>(fullpath, o => OnPostLoadProcess(o)));
            }
            else
            {
                var sceneScript = scene.GetComponent <IScene>();
                SetupScene(scene, sceneScript.contentsList);
            }
        }
Exemple #6
0
 public void Show(Constants.SceneName sceneName)
 {
     BringToTop(sceneName);
 }
Exemple #7
0
 public void Load(Constants.SceneName sceneName, bool unload = true)
 {
     LoadRoot(sceneName, unload);
 }