void OnGUI() { EditorGUILayout.LabelField("ScenesPackage Creator", EditorStyles.largeLabel); EditorGUILayout.Separator(); windowObject.Update(); scroll = EditorGUILayout.BeginScrollView(scroll); EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(templateProp); if (EditorGUI.EndChangeCheck()) { SetTemplate(); } EditorGUILayout.PropertyField(folderProp, folderLabel); EditorGUILayout.PropertyField(packageNameProp, packageNameLabel); EditorGUILayout.Separator(); ScenesPackageGUIUtils.ArrayGUI(scenesToCreateProp, "Scenes à créer", "Indiquez le nom des scènes à créer. Elles seront préfixées avec le nom du package."); EditorGUILayout.Separator(); if (GUILayout.Button("Créer le package", GUILayout.Height(30))) { ScenesPackage newPackage = ScenesPackageHelper.CreatePackage(folder, packageName, scenesToCreate); if (newPackage != null) { Selection.activeObject = newPackage; } } EditorGUILayout.EndScrollView(); windowObject.ApplyModifiedProperties(); }
override public void OnInspectorGUI() { serializedObject.Update(); ScenesPackageGUIUtils.ArrayGUI(dependenciesProp, "Dépendances", "Package de scènes qui sera chargé avant celles de celui-ci."); ScenesPackageGUIUtils.ArrayGUI(scenesProp, "Scènes", "Scènes à charger, dans l'ordre."); EditorGUILayout.Separator(); if (GUILayout.Button("Charger le package", GUILayout.Height(30))) { ScenesPackageHelper.LoadScenesPackage(serializedObject.targetObject as ScenesPackage); } if (GUILayout.Button("Sauvegarder toutes les scènes")) { ScenesPackageHelper.SaveAllScenes(serializedObject.targetObject as ScenesPackage); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Sauvegarder et fermer")) { if (EditorUtility.DisplayDialog("Fermer", "Fermer le package ? Seules les scènes du package seront sauvegardées.", "Oui", "Non")) { saveScenes = true; EditorApplication.delayCall += CloseDelayed; } } if (GUILayout.Button("Fermer")) { if (EditorUtility.DisplayDialog("Fermer", "Fermer le package ? Toutes les modifications non sauvegardées seront perdues.", "Oui", "Non")) { EditorApplication.delayCall += CloseDelayed; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); if (GUILayout.Button("Ajouter les scenes dans la build")) { ScenesPackageHelper.AddScenesPackageInBuild(serializedObject.targetObject as ScenesPackage); } if (GUILayout.Button("Retirer les scenes de la build")) { ScenesPackageHelper.RemoveScenesPackageFromBuild(serializedObject.targetObject as ScenesPackage); } if (GUILayout.Button("Ouvrir les Build Settings")) { EditorApplication.ExecuteMenuItem("File/Build Settings..."); } EditorGUILayout.Separator(); EditorGUILayout.BeginVertical("Box"); EditorGUI.indentLevel++; masterFoldout = EditorGUILayout.Foldout(masterFoldout, "Master package"); EditorGUI.indentLevel--; if (masterFoldout) { EditorGUILayout.HelpBox("Master Package : La 1ère scène de ce package sera la 1ère scène chargée en jeu.", MessageType.Info); if (GUILayout.Button(masterProp.boolValue ? "Désactiver master" : "Activer master")) { saveScenes = false; masterProp.boolValue = !masterProp.boolValue; } } EditorGUILayout.EndVertical(); serializedObject.ApplyModifiedProperties(); GUI.backgroundColor = Color.red; EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.BeginVertical("Box"); EditorGUI.indentLevel++; dangerZoneFoldout = EditorGUILayout.Foldout(dangerZoneFoldout, "Danger zone"); if (dangerZoneFoldout) { EditorGUILayout.HelpBox("Faites attentions à ce que vous faites !", MessageType.Warning); if (GUILayout.Button("Supprimer le package")) { if (EditorUtility.DisplayDialog("Supprimer", "Êtes-vous sûr de vouloir supprimer le package. Toutes les scènes seront supprimées.", "Oui", "Non")) { ScenesPackageHelper.DeletePackage(serializedObject.targetObject as ScenesPackage); EditorApplication.delayCall += CloseDelayed; } } } EditorGUI.indentLevel--; EditorGUILayout.EndVertical(); GUI.backgroundColor = Color.white; }