static public void AddScenesPackageInBuild(ScenesPackage package) { List <string> scenesPath = new List <string>(GetScenesBuildPath()); SceneField[] scenesToAdd = package.GetScenes(includeDependencies: false); for (int i = 0; i < scenesToAdd.Length; ++i) { if (scenesToAdd[i].Empty || scenesPath.Contains(scenesToAdd[i].ScenePath)) { continue; } if (package._master && i == 0) { scenesPath.Insert(0, scenesToAdd[i].ScenePath); } else { scenesPath.Add(scenesToAdd[i].ScenePath); } } SetScenesBuildPath(scenesPath.ToArray()); Debug.Log(string.Format("{0} : Les scenes ont été ajoutées à la build", package.name), package); }
static public void SaveAllScenes(ScenesPackage package) { SceneField[] scenes = package.GetScenes(includeDependencies: true); for (int i = 0; i < scenes.Length; ++i) { Scene scene = EditorSceneManager.GetSceneByPath(scenes[i].ScenePath); EditorSceneManager.SaveScene(scene); } }
static public void DeletePackage(ScenesPackage package) { SceneField[] scenes = package.GetScenes(includeDependencies: false); for (int i = 0; i < scenes.Length; ++i) { AssetDatabase.MoveAssetToTrash(scenes[i].ScenePath); } AssetDatabase.MoveAssetToTrash(AssetDatabase.GetAssetPath(package)); }
static public void RemoveScenesPackageFromBuild(ScenesPackage package) { List <string> scenesPath = new List <string>(GetScenesBuildPath()); SceneField[] scenesToRemove = package.GetScenes(includeDependencies: false); for (int i = 0; i < scenesToRemove.Length; ++i) { if (scenesToRemove[i].Empty || !scenesPath.Contains(scenesToRemove[i].ScenePath)) { continue; } scenesPath.Remove(scenesToRemove[i].ScenePath); } SetScenesBuildPath(scenesPath.ToArray()); Debug.Log(string.Format("{0} : Les scenes ont été retirées à la build", package.name), package); }
static public void LoadScenesPackage(ScenesPackage package) { SceneField[] scenes = package.GetScenes(includeDependencies: true); bool activeSet = false; for (int i = 0; i < scenes.Length; ++i) { if (scenes[i].Empty) { continue; } Scene opened = EditorSceneManager.OpenScene(scenes[i].ScenePath, OpenSceneMode.Additive); if (!activeSet) { EditorSceneManager.SetActiveScene(opened); CloseAllScenesButActive(); activeSet = true; } } }