private void OpenActivityInEditor() { EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo(); //The Game scene must allways be loaded OpenSceneInEditor(R.E.Scene.Game, OpenSceneMode.Single); //Load Activity controller scene R.E.Scene scene = (R.E.Scene)GetEnumProperty("scene", typeof(R.E.Scene)).CurrentValue; if (scene != R.E.Scene.None) { OpenSceneInEditor(scene, OpenSceneMode.Additive); } //Load Activity fragments var fragments = GetListProperty("fragments"); for (int i = 0; i < fragments.serializedProperty.arraySize; i++) { OpenFragmentInEditor(fragments.serializedProperty.GetArrayElementAtIndex(i).objectReferenceValue as Fragment, OpenSceneMode.Additive); } //Load Activity menus var menus = GetListProperty("menus"); for (int i = 0; i < menus.serializedProperty.arraySize; i++) { OpenMenuInEditor(menus.serializedProperty.GetArrayElementAtIndex(i).objectReferenceValue as Menu, OpenSceneMode.Additive); } }
private void OpenSceneInEditor(R.E.Scene scene, OpenSceneMode mode) { foreach (EditorBuildSettingsScene builtScene in EditorBuildSettings.scenes) { //The "/" in the front is to prevent some issues with similar scene names. //EX : // NewHighScoreScene.unity and HighScoreScene.unity if (builtScene.path.EndsWith("/" + R.S.Scene.ToString(scene) + ".unity")) { EditorSceneManager.OpenScene(builtScene.path, mode); break; } } }