private static GoldPlayerProjectSettings CreateNewSettings() { GoldPlayerProjectSettings settings = CreateInstance <GoldPlayerProjectSettings>(); SaveInstance(settings); return(settings); }
public override void OnGUI(string searchContext) { EditorGUILayout.HelpBox("Disabling components strips them out of your game. This is much more recommended than outright removing script files.", MessageType.Info); settings.disableInteraction = EditorGUILayout.Toggle("Disable Interaction", settings.disableInteraction); settings.disableUI = EditorGUILayout.Toggle("Disable uGUI", settings.disableUI); settings.disableGraphics = EditorGUILayout.Toggle("Disable Graphics", settings.disableGraphics); settings.disableAnimator = EditorGUILayout.Toggle("Disable Animator", settings.disableAnimator); settings.disableAudioExtras = EditorGUILayout.Toggle("Disable Audio Extras", settings.disableAudioExtras); settings.disableObjectBob = EditorGUILayout.Toggle("Disable Object Bob", settings.disableObjectBob); EditorGUILayout.Space(); if (GUILayout.Button("Apply", GUILayout.Width(EditorGUIUtility.fieldWidth))) { if (EditorUtility.DisplayDialog("Notice", "This will add new script defines and trigger a script reload. Are you sure you want to do this?", "Yes", "No")) { GoldPlayerProjectSettings.ApplyDefines(settings); } else { settings = GoldPlayerProjectSettings.GetOrCreate(); } } }
public override void OnGUI(string searchContext) { if (settings == null) { settings = GoldPlayerProjectSettings.Instance; } using (new SettingsGUIScope()) { EditorGUILayout.LabelField("Editor", EditorStyles.boldLabel); EditorGUIAdaption uiAdapation = settings.GUIAdapation; EditorGUI.BeginChangeCheck(); uiAdapation = (EditorGUIAdaption)EditorGUILayout.EnumPopup(uiAdapationContent, uiAdapation); if (EditorGUI.EndChangeCheck()) { settings.GUIAdapation = uiAdapation; } GUILayout.Space(16f); EditorGUILayout.LabelField("Scene View", EditorStyles.boldLabel); bool showGizmos = settings.ShowGroundCheckGizmos; EditorGUI.BeginChangeCheck(); showGizmos = EditorGUILayout.Toggle(showGroundGizmosContent, showGizmos); if (EditorGUI.EndChangeCheck()) { settings.ShowGroundCheckGizmos = showGizmos; } GUILayout.Space(16f); EditorGUILayout.LabelField("Disable Components", EditorStyles.boldLabel); EditorGUILayout.HelpBox("Disabling components strips them out of your game. This is much more recommended than outright removing script files.", MessageType.Info); settings.DisableInteraction = EditorGUILayout.Toggle("Disable Interaction", settings.DisableInteraction); settings.DisableUI = EditorGUILayout.Toggle("Disable uGUI", settings.DisableUI); settings.DisableGraphics = EditorGUILayout.Toggle("Disable Graphics", settings.DisableGraphics); settings.DisableAnimator = EditorGUILayout.Toggle("Disable Animator", settings.DisableAnimator); settings.DisableAudioExtras = EditorGUILayout.Toggle("Disable Audio Extras", settings.DisableAudioExtras); settings.DisableObjectBob = EditorGUILayout.Toggle("Disable Object Bob", settings.DisableObjectBob); EditorGUILayout.Space(); DrawApplyButton(); GUILayout.Space(16f); EditorGUILayout.LabelField("Optimizations", EditorStyles.boldLabel); settings.DisableOptimizations = EditorGUILayout.Toggle(disableOptimizationsContent, settings.DisableOptimizations); EditorGUILayout.Space(); DrawApplyButton(); } }
internal static void Save(GoldPlayerProjectSettings settings) { if (!Directory.Exists("ProjectSettings/Packages/se.hertzole.goldplayer")) { Directory.CreateDirectory("ProjectSettings/Packages/se.hertzole.goldplayer"); } File.WriteAllText(SETTINGS_LOCATION, JsonUtility.ToJson(settings, true)); }
private void DrawApplyButton() { if (GUILayout.Button("Apply", GUILayout.Width(EditorGUIUtility.fieldWidth))) { if (EditorUtility.DisplayDialog("Notice", "This will add new script defines and trigger a script reload. Are you sure you want to do this?", "Yes", "No")) { GoldPlayerProjectSettings.ApplyDefines(GoldPlayerProjectSettings.Instance); } else { settings = GoldPlayerProjectSettings.GetOrCreate(); } } }
private static void SaveInstance(GoldPlayerProjectSettings settings) { if (!Directory.Exists(DIRECTORY)) { Directory.CreateDirectory(DIRECTORY); } try { UnityEditorInternal.InternalEditorUtility.SaveToSerializedFileAndForget(new UnityEngine.Object[] { settings }, PATH, true); } catch (Exception ex) { Debug.LogError("Can't save Gold Player settings!\n" + ex); } }
internal static GoldPlayerProjectSettings GetOrCreate() { GoldPlayerProjectSettings settings = new GoldPlayerProjectSettings(); if (File.Exists(SETTINGS_LOCATION)) { settings = JsonUtility.FromJson <GoldPlayerProjectSettings>(File.ReadAllText(SETTINGS_LOCATION)); } else { settings.disableInteraction = false; settings.disableUI = false; settings.disableGraphics = false; settings.disableAnimator = false; settings.disableAudioExtras = false; settings.disableObjectBob = false; Save(settings); } return(settings); }
public static void ApplyDefines(GoldPlayerProjectSettings settings) { List <string> remove = new List <string>(); List <string> add = new List <string>(); if (settings.disableInteraction) { add.Add(DISABLE_INTERACTION); } else { remove.Add(DISABLE_INTERACTION); } if (settings.disableUI) { add.Add(DISABLE_UI); } else { remove.Add(DISABLE_UI); } if (settings.disableGraphics) { add.Add(DISABLE_GRAPHICS); } else { remove.Add(DISABLE_GRAPHICS); } if (settings.disableAnimator) { add.Add(DISABLE_ANIMATOR); } else { remove.Add(DISABLE_ANIMATOR); } if (settings.disableAudioExtras) { add.Add(DISABLE_AUDIO_EXTRAS); } else { remove.Add(DISABLE_AUDIO_EXTRAS); } if (settings.disableObjectBob) { add.Add(DISABLE_OBJECT_BOB); } else { remove.Add(DISABLE_OBJECT_BOB); } if (settings.disableOptimizations) { add.Add(DISABLE_OPTIMIZATIONS); } else { remove.Add(DISABLE_OPTIMIZATIONS); } GoldPlayerScriptHelpers.AddAndRemoveDefines(add, remove); Save(); }
internal static void ApplyDefines(GoldPlayerProjectSettings settings) { List <string> remove = new List <string>(); List <string> add = new List <string>(); if (settings.disableInteraction) { add.Add("GOLD_PLAYER_DISABLE_INTERACTION"); } else { remove.Add("GOLD_PLAYER_DISABLE_INTERACTION"); } if (settings.disableUI) { add.Add("GOLD_PLAYER_DISABLE_UI"); } else { remove.Add("GOLD_PLAYER_DISABLE_UI"); } if (settings.disableGraphics) { add.Add("GOLD_PLAYER_DISABLE_GRAPHICS"); } else { remove.Add("GOLD_PLAYER_DISABLE_GRAPHICS"); } if (settings.disableAnimator) { add.Add("GOLD_PLAYER_DISABLE_ANIMATOR"); } else { remove.Add("GOLD_PLAYER_DISABLE_ANIMATOR"); } if (settings.disableAudioExtras) { add.Add("GOLD_PLAYER_DISABLE_AUDIO_EXTRAS"); } else { remove.Add("GOLD_PLAYER_DISABLE_AUDIO_EXTRAS"); } if (settings.disableObjectBob) { add.Add("GOLD_PLAYER_DISABLE_OBJECT_BOB"); } else { remove.Add("GOLD_PLAYER_DISABLE_OBJECT_BOB"); } GoldPlayerScriptHelpers.AddAndRemove(add, remove); Save(settings); }
private GoldPlayerSettingsProvider(string path, SettingsScope scopes) : base(path, scopes) { label = "Gold Player"; settings = GoldPlayerProjectSettings.GetOrCreate(); }