private static GoldPlayerProjectSettings CreateNewSettings()
        {
            GoldPlayerProjectSettings settings = CreateInstance <GoldPlayerProjectSettings>();

            SaveInstance(settings);
            return(settings);
        }
예제 #2
0
        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();
                }
            }
        }
예제 #3
0
        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();
            }
        }
예제 #4
0
        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));
        }
예제 #5
0
 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);
            }
        }
예제 #7
0
        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();
        }
예제 #9
0
        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);
        }
예제 #10
0
 private GoldPlayerSettingsProvider(string path, SettingsScope scopes) : base(path, scopes)
 {
     label    = "Gold Player";
     settings = GoldPlayerProjectSettings.GetOrCreate();
 }