public static void CheckPoolCache(GameObject gameObject, int pool, Starter starter) { GameObject prefab; #if UNITY_2018_3_OR_NEWER prefab = PrefabUtility.GetCorrespondingObjectFromSource(gameObject); #else prefab = (GameObject)PrefabUtility.GetPrefabObject(gameObject); #endif if (prefab == null) { return; } starter.AddToNode(prefab, gameObject, pool); }
IEnumerator _Setup(Starter starter) { for (var i = 0; i < SceneManager.sceneCount; i++) { var scene = SceneManager.GetSceneAt(i); scenes.Add(scene.name, scene); } for (var i = 0; i < sceneDependsOn.Count; i++) { var name = sceneDependsOn[i]; if (scenes.ContainsKey(name)) { yield return(new WaitForSeconds(0.1f)); continue; } var load = SceneManager.LoadSceneAsync(sceneDependsOn[i], LoadSceneMode.Additive); while (!load.isDone) { yield return(0); } scenes.Add(name, SceneManager.GetSceneByName(name)); } if (sceneDependsOn.Count == 0) { yield return(0); } OnSceneLoad(); starter.BindScene(); }
public void Setup(List <SceneReference> scenesToKeep, List <SceneReference> sceneDependsOn, Starter starter) { this.scenesToKeep.Clear(); this.sceneDependsOn.Clear(); for (var i = 0; i < scenesToKeep.Count; i++) { this.scenesToKeep.Add(scenesToKeep[i].Path); } for (var i = 0; i < sceneDependsOn.Count; i++) { this.sceneDependsOn.Add(sceneDependsOn[i].Path); } Toolbox.Instance.StartCoroutine(_Setup(starter)); }