IEnumerator AddNecessaryScenes(ScriptableScenePackage scenePackage, List <AsyncOperation> asyncAddSceneOperations) { #if CHEAT yield return(AddNecessaryScenes(asyncAddSceneOperations, scenePackage.cheatScenes)); #endif for (int i = 0; i < scenePackage.startScenePackages.Length; i++) { yield return(AddNecessaryScenes(scenePackage.startScenePackages[i], asyncAddSceneOperations)); } yield return(AddNecessaryScenes(asyncAddSceneOperations, scenePackage.scenes)); for (int i = 0; i < scenePackage.endScenePackages.Length; i++) { yield return(AddNecessaryScenes(scenePackage.endScenePackages[i], asyncAddSceneOperations)); } }
public static bool SceneHasToBeRemoved(ScriptableScenePackage scenePackage, string sceneName) { bool remove = true; #if CHEAT remove = remove && !(Array.Exists(scenePackage.cheatScenes, ((x) => { return(x == sceneName); }))); #endif for (int i = 0; i < scenePackage.startScenePackages.Length; i++) { remove = remove && SceneHasToBeRemoved(scenePackage.startScenePackages[i], sceneName); } remove = remove && !(Array.Exists(scenePackage.scenes, ((x) => { return(x == sceneName); }))); for (int i = 0; i < scenePackage.endScenePackages.Length; i++) { remove = remove && SceneHasToBeRemoved(scenePackage.endScenePackages[i], sceneName); } return(remove); }