Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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;
                }
            }
        }