|
using UnityEngine;
|
|
using UnityEditor;
|
|
using System.Collections;
|
|
|
|
namespace ProGrids
|
|
{
|
|
public class pg_Preferences
|
|
{
|
|
static Color _gridColorX;
|
|
static Color _gridColorY;
|
|
static Color _gridColorZ;
|
|
static float _alphaBump;
|
|
static bool _scaleSnapEnabled;
|
|
static int _snapMethod;
|
|
static float _BracketIncreaseValue;
|
|
static SnapUnit _GridUnits;
|
|
static bool _syncUnitySnap;
|
|
|
|
static KeyCode _IncreaseGridSize = KeyCode.Equals;
|
|
static KeyCode _DecreaseGridSize = KeyCode.Minus;
|
|
static KeyCode _NudgePerspectiveBackward = KeyCode.LeftBracket;
|
|
static KeyCode _NudgePerspectiveForward = KeyCode.RightBracket;
|
|
static KeyCode _NudgePerspectiveReset = KeyCode.Alpha0;
|
|
static KeyCode _CyclePerspective = KeyCode.Backslash;
|
|
|
|
|
|
/** Defaults **/
|
|
public static Color GRID_COLOR_X = new Color(.9f, .46f, .46f, .15f);
|
|
public static Color GRID_COLOR_Y = new Color(.46f, .9f, .46f, .15f);
|
|
public static Color GRID_COLOR_Z = new Color(.46f, .46f, .9f, .15f);
|
|
public static float ALPHA_BUMP = .25f;
|
|
public static bool USE_AXIS_CONSTRAINTS = false;
|
|
public static bool SHOW_GRID = true;
|
|
|
|
static string[] SnapMethod = new string[]
|
|
{
|
|
"Snap on Selected Axis",
|
|
"Snap on All Axes"
|
|
};
|
|
|
|
static int[] SnapVals = new int[] { 1, 0 };
|
|
static bool prefsLoaded = false;
|
|
|
|
[PreferenceItem("ProGrids")]
|
|
public static void PreferencesGUI()
|
|
{
|
|
if (!prefsLoaded)
|
|
prefsLoaded = LoadPreferences();
|
|
|
|
// EditorGUILayout.HelpBox("Changes will take effect on the next ProGrids open.", MessageType.Info);
|
|
|
|
GUILayout.Label("Grid Colors per Axis", EditorStyles.boldLabel);
|
|
_gridColorX = EditorGUILayout.ColorField("X Axis", _gridColorX);
|
|
_gridColorY = EditorGUILayout.ColorField("Y Axis", _gridColorY);
|
|
_gridColorZ = EditorGUILayout.ColorField("Z Axis", _gridColorZ);
|
|
|
|
_alphaBump = EditorGUILayout.Slider(new GUIContent("Tenth Line Alpha", "Every 10th line will have it's alpha value bumped by this amount."), _alphaBump, 0f, 1f);
|
|
|
|
// not used
|
|
// _BracketIncreaseValue = EditorGUILayout.FloatField(new GUIContent("Grid Increment Value", "Affects the amount by which the bracket keys will increment or decrement that snap value."), _BracketIncreaseValue);
|
|
|
|
_GridUnits = (SnapUnit)EditorGUILayout.EnumPopup("Grid Units", _GridUnits);
|
|
|
|
_scaleSnapEnabled = EditorGUILayout.Toggle("Snap On Scale", _scaleSnapEnabled);
|
|
|
|
// GUILayout.BeginHorizontal();
|
|
// EditorGUILayout.PrefixLabel(new GUIContent("Axis Constraints", "If toggled, objects will be automatically grid aligned on all axes when moving."));
|
|
|
|
_snapMethod = EditorGUILayout.IntPopup("Snap Method", _snapMethod, SnapMethod, SnapVals);
|
|
|
|
_syncUnitySnap = EditorGUILayout.Toggle("Sync w/ Unity Snap", _syncUnitySnap);
|
|
|
|
// GUILayout.EndHorizontal();
|
|
|
|
GUILayout.Label("Shortcuts", EditorStyles.boldLabel);
|
|
_IncreaseGridSize = (KeyCode)EditorGUILayout.EnumPopup("Increase Grid Size", _IncreaseGridSize);
|
|
_DecreaseGridSize = (KeyCode)EditorGUILayout.EnumPopup("Decrease Grid Size", _DecreaseGridSize);
|
|
_NudgePerspectiveBackward = (KeyCode)EditorGUILayout.EnumPopup("Nudge Perspective Backward", _NudgePerspectiveBackward);
|
|
_NudgePerspectiveForward = (KeyCode)EditorGUILayout.EnumPopup("Nudge Perspective Forward", _NudgePerspectiveForward);
|
|
_NudgePerspectiveReset = (KeyCode)EditorGUILayout.EnumPopup("Nudge Perspective Reset", _NudgePerspectiveReset);
|
|
_CyclePerspective = (KeyCode)EditorGUILayout.EnumPopup("Cycle Perspective", _CyclePerspective);
|
|
|
|
if (GUILayout.Button("Reset"))
|
|
{
|
|
if (EditorUtility.DisplayDialog("Delete ProGrids editor preferences?", "Are you sure you want to delete these?, this action cannot be undone.", "Yes", "No"))
|
|
ResetPrefs();
|
|
}
|
|
|
|
if (GUI.changed)
|
|
SetPreferences();
|
|
}
|
|
|
|
public static bool LoadPreferences()
|
|
{
|
|
_scaleSnapEnabled = EditorPrefs.HasKey("scaleSnapEnabled") ? EditorPrefs.GetBool("scaleSnapEnabled") : false;
|
|
_gridColorX = (EditorPrefs.HasKey("gridColorX")) ? pg_Util.ColorWithString(EditorPrefs.GetString("gridColorX")) : GRID_COLOR_X;
|
|
_gridColorY = (EditorPrefs.HasKey("gridColorY")) ? pg_Util.ColorWithString(EditorPrefs.GetString("gridColorY")) : GRID_COLOR_Y;
|
|
_gridColorZ = (EditorPrefs.HasKey("gridColorZ")) ? pg_Util.ColorWithString(EditorPrefs.GetString("gridColorZ")) : GRID_COLOR_Z;
|
|
_alphaBump = (EditorPrefs.HasKey("pg_alphaBump")) ? EditorPrefs.GetFloat("pg_alphaBump") : ALPHA_BUMP;
|
|
_snapMethod = System.Convert.ToInt32(
|
|
(EditorPrefs.HasKey(pg_Constant.UseAxisConstraints)) ? EditorPrefs.GetBool(pg_Constant.UseAxisConstraints) : USE_AXIS_CONSTRAINTS
|
|
);
|
|
_BracketIncreaseValue = EditorPrefs.HasKey(pg_Constant.BracketIncreaseValue) ? EditorPrefs.GetFloat(pg_Constant.BracketIncreaseValue) : .25f;
|
|
_GridUnits = (SnapUnit)(EditorPrefs.HasKey(pg_Constant.GridUnit) ? EditorPrefs.GetInt(pg_Constant.GridUnit) : 0);
|
|
_syncUnitySnap = EditorPrefs.GetBool(pg_Constant.SyncUnitySnap, true);
|
|
|
|
_IncreaseGridSize = EditorPrefs.HasKey("pg_Editor::IncreaseGridSize")
|
|
? (KeyCode)EditorPrefs.GetInt("pg_Editor::IncreaseGridSize")
|
|
: KeyCode.Equals;
|
|
_DecreaseGridSize = EditorPrefs.HasKey("pg_Editor::DecreaseGridSize")
|
|
? (KeyCode)EditorPrefs.GetInt("pg_Editor::DecreaseGridSize")
|
|
: KeyCode.Minus;
|
|
_NudgePerspectiveBackward = EditorPrefs.HasKey("pg_Editor::NudgePerspectiveBackward")
|
|
? (KeyCode)EditorPrefs.GetInt("pg_Editor::NudgePerspectiveBackward")
|
|
: KeyCode.LeftBracket;
|
|
_NudgePerspectiveForward = EditorPrefs.HasKey("pg_Editor::NudgePerspectiveForward")
|
|
? (KeyCode)EditorPrefs.GetInt("pg_Editor::NudgePerspectiveForward")
|
|
: KeyCode.RightBracket;
|
|
_NudgePerspectiveReset = EditorPrefs.HasKey("pg_Editor::NudgePerspectiveReset")
|
|
? (KeyCode)EditorPrefs.GetInt("pg_Editor::NudgePerspectiveReset")
|
|
: KeyCode.Alpha0;
|
|
_CyclePerspective = EditorPrefs.HasKey("pg_Editor::CyclePerspective")
|
|
? (KeyCode)EditorPrefs.GetInt("pg_Editor::CyclePerspective")
|
|
: KeyCode.Backslash;
|
|
|
|
return true;
|
|
}
|
|
|
|
public static void SetPreferences()
|
|
{
|
|
EditorPrefs.SetBool("scaleSnapEnabled", _scaleSnapEnabled);
|
|
EditorPrefs.SetString("gridColorX", _gridColorX.ToString("f3"));
|
|
EditorPrefs.SetString("gridColorY", _gridColorY.ToString("f3"));
|
|
EditorPrefs.SetString("gridColorZ", _gridColorZ.ToString("f3"));
|
|
EditorPrefs.SetFloat("pg_alphaBump", _alphaBump);
|
|
EditorPrefs.SetBool(pg_Constant.UseAxisConstraints, System.Convert.ToBoolean(_snapMethod));
|
|
EditorPrefs.SetFloat(pg_Constant.BracketIncreaseValue, _BracketIncreaseValue);
|
|
EditorPrefs.SetInt(pg_Constant.GridUnit, (int)_GridUnits);
|
|
EditorPrefs.SetBool(pg_Constant.SyncUnitySnap, _syncUnitySnap);
|
|
EditorPrefs.SetInt("pg_Editor::IncreaseGridSize", (int)_IncreaseGridSize);
|
|
EditorPrefs.SetInt("pg_Editor::DecreaseGridSize", (int)_DecreaseGridSize);
|
|
EditorPrefs.SetInt("pg_Editor::NudgePerspectiveBackward", (int)_NudgePerspectiveBackward);
|
|
EditorPrefs.SetInt("pg_Editor::NudgePerspectiveForward", (int)_NudgePerspectiveForward);
|
|
EditorPrefs.SetInt("pg_Editor::NudgePerspectiveReset", (int)_NudgePerspectiveReset);
|
|
EditorPrefs.SetInt("pg_Editor::CyclePerspective", (int)_CyclePerspective);
|
|
|
|
if (pg_Editor.instance != null)
|
|
{
|
|
pg_Editor.instance.LoadPreferences();
|
|
}
|
|
}
|
|
|
|
public static void ResetPrefs()
|
|
{
|
|
EditorPrefs.DeleteKey("scaleSnapEnabled");
|
|
EditorPrefs.DeleteKey("gridColorX");
|
|
EditorPrefs.DeleteKey("gridColorY");
|
|
EditorPrefs.DeleteKey("gridColorZ");
|
|
EditorPrefs.DeleteKey("pg_alphaBump");
|
|
EditorPrefs.DeleteKey(pg_Constant.UseAxisConstraints);
|
|
EditorPrefs.DeleteKey(pg_Constant.BracketIncreaseValue);
|
|
EditorPrefs.DeleteKey(pg_Constant.GridUnit);
|
|
EditorPrefs.DeleteKey("showgrid");
|
|
EditorPrefs.DeleteKey(pg_Constant.SnapMultiplier);
|
|
EditorPrefs.DeleteKey(pg_Constant.SyncUnitySnap);
|
|
EditorPrefs.DeleteKey("pg_Editor::IncreaseGridSize");
|
|
EditorPrefs.DeleteKey("pg_Editor::DecreaseGridSize");
|
|
EditorPrefs.DeleteKey("pg_Editor::NudgePerspectiveBackward");
|
|
EditorPrefs.DeleteKey("pg_Editor::NudgePerspectiveForward");
|
|
EditorPrefs.DeleteKey("pg_Editor::NudgePerspectiveReset");
|
|
EditorPrefs.DeleteKey("pg_Editor::CyclePerspective");
|
|
|
|
LoadPreferences();
|
|
}
|
|
}
|
|
}
|