Esempio n. 1
0
        static void AddScenesToBuildSettings(InitializationScenes instance)
        {
            EditorBuildSettingsScene[] buildScenes = EditorBuildSettings.scenes;

            List <EditorBuildSettingsScene> finalScenes = new List <EditorBuildSettingsScene>();

            finalScenes.Add(new EditorBuildSettingsScene(instance.mainInitializationScenePath, true));

            for (int i = 0; i < instance.initializationScenePaths.Length; i++)
            {
                finalScenes.Add(new EditorBuildSettingsScene(instance.initializationScenePaths[i], true));
            }



            // add all non initialization scenes that were already in the build settings...
            for (int i = 0; i < buildScenes.Length; i++)
            {
                string path = buildScenes[i].path;

                if (string.IsNullOrEmpty(path))
                {
                    continue;
                }

                if (path.Contains(InitializationScenes.mainInitializationScene) || path.Contains(InitializationScenes.initializationSceneKey))
                {
                    continue;
                }

                finalScenes.Add(buildScenes[i]);
            }

            EditorBuildSettings.scenes = finalScenes.ToArray();
        }
Esempio n. 2
0
        public static void RefreshScenesList()
        {
            InitializationScenes instance = InitializationScenes.instance;

            // dont update when in play mode or if our game settings object is missing
            if (Application.isPlaying || instance == null)
            {
                return;
            }

            // update the array of all game settings objects in the project
            SceneAsset[] allScenesInProject = AssetTools.FindAssetsByType <SceneAsset>(logToConsole: false).ToArray();

            SceneAsset        mainScene            = null;
            List <SceneAsset> initializationScenes = new List <SceneAsset>();


            for (int i = 0; i < allScenesInProject.Length; i++)
            {
                if (allScenesInProject[i].name == InitializationScenes.mainInitializationScene)
                {
                    mainScene = allScenesInProject[i];
                    continue;
                }
                if (allScenesInProject[i].name.Contains(InitializationScenes.initializationSceneKey))
                {
                    initializationScenes.Add(allScenesInProject[i]);
                }
            }

            if (mainScene == null)
            {
                Debug.LogError("No Main Initialization scene found named: " + InitializationScenes.mainInitializationScene);
            }
            else
            {
                instance.mainInitializationScenePath = AssetDatabase.GetAssetPath(mainScene);
            }

            int c = initializationScenes.Count;

            instance.initializationSceneNames = new string[c];
            instance.initializationScenePaths = new string[c];

            for (int i = 0; i < c; i++)
            {
                string path = AssetDatabase.GetAssetPath(initializationScenes[i]);
                instance.initializationScenePaths[i] = path;
                instance.initializationSceneNames[i] = Path.GetFileNameWithoutExtension(path);
            }

            AddScenesToBuildSettings(instance);

            EditorUtility.SetDirty(instance);
        }
Esempio n. 3
0
 public static void QuitToMainMenu()
 {
     SaveLoad.ClearGameSaveState();
     InitializationScenes.LoadInitializationScene();
 }