public static string[] AdditionalScenePaths(this SceneDefinition sceneDefinition) { string[] finalAdditionalScenes = new string[sceneDefinition.additionalScenes.Length]; for (int i = 0; i < sceneDefinition.additionalScenes.Length; i++) { finalAdditionalScenes[i] = sceneDefinition.additionalScenes[i].SceneFilePath(); } return(finalAdditionalScenes); }
void OnEnable() { gameScenes.Clear(); foreach (string sceneAssetPath in AssetDatabase.FindAssets("t:sceneDefinition").Select(s => AssetDatabase.GUIDToAssetPath(s))) { SceneDefinition sceneDefinition = AssetDatabase.LoadAssetAtPath <SceneDefinition>(sceneAssetPath); gameScenes.Add(new GameScenePath(sceneDefinition.PrimaryScene, sceneDefinition.PrimaryScenePath())); } gameScenes = gameScenes.OrderBy(x => x.sceneName).ToList(); }
public static string[] AllScenePaths(this SceneDefinition sceneDefinition) { string[] allScenes = new string[sceneDefinition.additionalScenes.Length + 2]; allScenes[0] = SceneDefinition.entryScenePath; allScenes[1] = sceneDefinition.primaryScene.SceneFilePath(); for (int i = 0; i < sceneDefinition.additionalScenes.Length; i++) { allScenes[2 + i] = sceneDefinition.additionalScenes[i].SceneFilePath(); } return(allScenes); }
static UnityEngine.SceneManagement.Scene RootScene() { for (int i = 0; i < EditorSceneManager.loadedSceneCount; i++) { UnityEngine.SceneManagement.Scene scene = EditorSceneManager.GetSceneAt(i); SceneDefinition sceneDefintion = SceneDefinition_Editor.FromPath(scene.path); if (sceneDefintion != null) { return(scene); } } return(new UnityEngine.SceneManagement.Scene()); }
static SceneDefinition FindSceneDefinition() { foreach (SceneSetup sceneSetup in EditorSceneManager.GetSceneManagerSetup()) { if (!sceneSetup.isLoaded) { continue; } SceneDefinition sceneDefintion = SceneDefinition_Editor.FromPath(sceneSetup.path); if (sceneDefintion != null) { return(sceneDefintion); } } return(null); }
public static void RefreshCurrentSceneDefinition(bool refreshScenes = true) { if (ignoreSceneEvents || EditorApplication.isPlaying) { return; } currentDefinition = FindSceneDefinition(); OnDefinitionChange(); if (currentDefinition == null) { return; } if (refreshScenes) { RefreshLoadedScenes(); } }
public static SceneDefinition CreateFromScene(UnityEngine.SceneManagement.Scene scene) { SceneDefinition asset = ScriptableObject.CreateInstance <SceneDefinition>(); SceneAsset sceneAsset = AssetDatabase.LoadAssetAtPath <SceneAsset>(scene.path); asset.primaryScene = new SceneField(sceneAsset, sceneAsset.name); string assetPath = AssetPathFromScenePath(scene.path); string projectDirectory = Path.GetDirectoryName(Application.dataPath); string directory = Path.Combine(projectDirectory, Path.GetDirectoryName(assetPath)); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } AssetDatabase.CreateAsset(asset, assetPath); return(asset); }
public static string PrimaryScenePath(this SceneDefinition sceneDefinition) { return(sceneDefinition.primaryScene.SceneFilePath()); }
public SceneLoadInfo(SceneDefinition sceneDefinition) { this.sceneDefinition = new Saves.SavedObjectReference <SceneDefinition>(sceneDefinition); }