GameObject GetRoot(Constants.SceneName sceneName) { GameObject scene; _scenes.TryGetValue(sceneName, out scene); return(scene); }
void BringToTop(Constants.SceneName sceneName) { _showList.Remove(sceneName); _showList.AddFirst(sceneName); var scene = GetRoot(sceneName); scene.transform.SetAsFirstSibling(); }
public T GetScript <T>(Constants.SceneName sceneName) { var scene = GetRoot(sceneName); if (scene != null) { return(scene.GetComponent <T>()); } return(default(T)); }
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); } } }
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); } }
public void Show(Constants.SceneName sceneName) { BringToTop(sceneName); }
public void Load(Constants.SceneName sceneName, bool unload = true) { LoadRoot(sceneName, unload); }