108 lines
3.5 KiB
C#
108 lines
3.5 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
public class AutoSaverEditor : EditorWindow
|
|
{
|
|
[MenuItem("Window/AutoSaver")]
|
|
public static void ShowWindow()
|
|
{
|
|
EditorWindow.GetWindow(typeof(AutoSaverEditor), false, "AutoSaver");
|
|
}
|
|
|
|
void Update()
|
|
{
|
|
Repaint();
|
|
}
|
|
|
|
void OnGUI()
|
|
{
|
|
#region AutoSaver button
|
|
if(GUILayout.Button((AutoSaver.IsEnabled) ? "AutoSaver: ON" : "AutoSaver: OFF"))
|
|
{
|
|
if (AutoSaver.IsEnabled) AutoSaver.DeactivateAutosaver();
|
|
else AutoSaver.ActivateAutosaver();
|
|
}
|
|
#endregion
|
|
#region AutoSaver Debug button
|
|
if (GUILayout.Button((AutoSaver.IsDebugEnabled) ? "AutoSaver Debug: ON" : "AutoSaver Debug: OFF"))
|
|
{
|
|
if (AutoSaver.IsDebugEnabled) AutoSaver.IsDebugEnabled = false;
|
|
else AutoSaver.IsDebugEnabled = true;
|
|
}
|
|
#endregion
|
|
|
|
#region Assets saver and Save on play buttons
|
|
EditorGUILayout.BeginHorizontal();
|
|
|
|
EditorGUILayout.BeginVertical();
|
|
if (GUILayout.Button((AutoSaver.AutosaveAssets) ? "Assets saver: ON" : "Assets saver: OFF"))
|
|
{
|
|
if (AutoSaver.AutosaveAssets) AutoSaver.AutosaveAssets = false;
|
|
else AutoSaver.AutosaveAssets = true;
|
|
}
|
|
EditorGUILayout.EndVertical();
|
|
|
|
EditorGUILayout.BeginVertical();
|
|
if (GUILayout.Button((AutoSaver.SaveOnPlay) ? "Save on play: ON" : "Save on play: OFF"))
|
|
{
|
|
if (AutoSaver.SaveOnPlay) AutoSaver.SaveOnPlay = false;
|
|
else AutoSaver.SaveOnPlay = true;
|
|
}
|
|
EditorGUILayout.EndVertical();
|
|
|
|
EditorGUILayout.EndHorizontal();
|
|
#endregion
|
|
|
|
#region Interval slider
|
|
EditorGUILayout.BeginHorizontal();
|
|
EditorGUILayout.BeginVertical();
|
|
AutoSaver.AutosaveInterval = EditorGUILayout.IntSlider("AutoSave Interval:", AutoSaver.AutosaveInterval, 1, 60);
|
|
EditorGUILayout.EndHorizontal();
|
|
EditorGUILayout.EndVertical();
|
|
#endregion
|
|
|
|
#region Save and Delete buttons
|
|
EditorGUILayout.BeginHorizontal(GUI.skin.box);
|
|
|
|
EditorGUILayout.BeginVertical();
|
|
if (GUILayout.Button("Save prefs"))
|
|
{
|
|
SaveEditorPrefs();
|
|
}
|
|
EditorGUILayout.EndVertical();
|
|
|
|
EditorGUILayout.BeginVertical();
|
|
if (GUILayout.Button("Delete prefs"))
|
|
{
|
|
DeleteEditorPrefs();
|
|
}
|
|
EditorGUILayout.EndVertical();
|
|
|
|
EditorGUILayout.EndHorizontal();
|
|
#endregion
|
|
}
|
|
|
|
#region Private methods
|
|
private void SaveEditorPrefs()
|
|
{
|
|
EditorPrefs.SetBool("UNITY_AUTOSAVER_prefsExist", true);
|
|
EditorPrefs.SetBool("UNITY_AUTOSAVER_isEnabled", AutoSaver.IsEnabled);
|
|
EditorPrefs.SetBool("UNITY_AUTOSAVER_isDebugEnabled", AutoSaver.IsDebugEnabled);
|
|
EditorPrefs.SetBool("UNITY_AUTOSAVER_autosaveAssets", AutoSaver.AutosaveAssets);
|
|
EditorPrefs.SetInt("UNITY_AUTOSAVER_autosaveInterval", AutoSaver.AutosaveInterval);
|
|
|
|
Debug.Log("AutoSaver: settings saved!");
|
|
}
|
|
|
|
private void DeleteEditorPrefs()
|
|
{
|
|
EditorPrefs.DeleteKey("UNITY_AUTOSAVER_prefsExist");
|
|
EditorPrefs.DeleteKey("UNITY_AUTOSAVER_isEnabled");
|
|
EditorPrefs.DeleteKey("UNITY_AUTOSAVER_isDebugEnabled");
|
|
EditorPrefs.DeleteKey("UNITY_AUTOSAVER_autosaveAssets");
|
|
EditorPrefs.DeleteKey("UNITY_AUTOSAVER_autosaveInterval");
|
|
|
|
Debug.Log("AutoSaver: settings deleted!");
|
|
}
|
|
#endregion
|
|
} |