No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CreateSceneUtility.cs 1.1KB

12345678910111213141516171819202122232425
  1. using System;
  2. using System.Linq;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;
  5. class CreateSceneUtility
  6. {
  7. public static void CreateScene(string sceneName, Action delegateToExecute)
  8. {
  9. #if UNITY_EDITOR
  10. string scenePath = "Assets/" + sceneName + ".unity";
  11. var initScene = SceneManager.GetActiveScene();
  12. var list = UnityEditor.EditorBuildSettings.scenes.ToList();
  13. var newScene = UnityEditor.SceneManagement.EditorSceneManager.NewScene(UnityEditor.SceneManagement.NewSceneSetup.DefaultGameObjects, UnityEditor.SceneManagement.NewSceneMode.Additive);
  14. GameObject.DestroyImmediate(Camera.main.GetComponent<AudioListener>());
  15. delegateToExecute();
  16. UnityEditor.SceneManagement.EditorSceneManager.SaveScene(newScene, scenePath);
  17. UnityEditor.SceneManagement.EditorSceneManager.UnloadSceneAsync(newScene);
  18. list.Add(new UnityEditor.EditorBuildSettingsScene(scenePath, true));
  19. UnityEditor.EditorBuildSettings.scenes = list.ToArray();
  20. SceneManager.SetActiveScene(initScene);
  21. #endif
  22. }
  23. }