|
using UnityEngine;
|
|
using UnityEditor;
|
|
using System.Collections;
|
|
|
|
namespace ProGrids
|
|
{
|
|
|
|
public class pg_ParameterWindow : EditorWindow
|
|
{
|
|
public pg_Editor editor;
|
|
|
|
GUIContent gc_predictiveGrid = new GUIContent("Predictive Grid", "If enabled, the grid will automatically render at the optimal axis based on movement.");
|
|
GUIContent gc_snapAsGroup = new GUIContent("Snap as Group", "If enabled, selected objects will keep their relative offsets when moving. If disabled, every object in the selection is snapped to grid independently.");
|
|
|
|
void OnGUI()
|
|
{
|
|
GUILayout.Label("Snap Settings", EditorStyles.boldLabel);
|
|
|
|
float snap = editor.GetSnapIncrement();
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
|
|
snap = EditorGUILayout.FloatField("Snap Value", snap);
|
|
|
|
if(EditorGUI.EndChangeCheck())
|
|
editor.SetSnapIncrement(snap);
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
int majorLineIncrement = EditorPrefs.GetInt(pg_Constant.MajorLineIncrement, 10);
|
|
majorLineIncrement = EditorGUILayout.IntField("Major Line Increment", majorLineIncrement);
|
|
majorLineIncrement = majorLineIncrement < 2 ? 2 : majorLineIncrement > 128 ? 128 : majorLineIncrement;
|
|
if(EditorGUI.EndChangeCheck())
|
|
{
|
|
EditorPrefs.SetInt(pg_Constant.MajorLineIncrement, majorLineIncrement);
|
|
pg_GridRenderer.majorLineIncrement = majorLineIncrement;
|
|
pg_Editor.ForceRepaint();
|
|
}
|
|
|
|
editor.ScaleSnapEnabled = EditorGUILayout.Toggle("Snap On Scale", editor.ScaleSnapEnabled);
|
|
|
|
SnapUnit _gridUnits = (SnapUnit)(EditorPrefs.HasKey(pg_Constant.GridUnit) ? EditorPrefs.GetInt(pg_Constant.GridUnit) : 0);
|
|
|
|
bool snapAsGroup = editor.snapAsGroup;
|
|
snapAsGroup = EditorGUILayout.Toggle(gc_snapAsGroup, snapAsGroup);
|
|
if(snapAsGroup != editor.snapAsGroup)
|
|
editor.snapAsGroup = snapAsGroup;
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
|
|
_gridUnits = (SnapUnit)EditorGUILayout.EnumPopup("Grid Units", _gridUnits);
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
editor.angleValue = EditorGUILayout.Slider("Angle", editor.angleValue, 0f, 180f);
|
|
if(EditorGUI.EndChangeCheck())
|
|
SceneView.RepaintAll();
|
|
|
|
if( EditorGUI.EndChangeCheck() )
|
|
{
|
|
EditorPrefs.SetInt(pg_Constant.GridUnit, (int) _gridUnits);
|
|
editor.LoadPreferences();
|
|
}
|
|
|
|
bool tmp = editor.predictiveGrid;
|
|
tmp = EditorGUILayout.Toggle(gc_predictiveGrid, tmp);
|
|
if( tmp != editor.predictiveGrid )
|
|
{
|
|
editor.predictiveGrid = tmp;
|
|
EditorPrefs.SetBool(pg_Constant.PredictiveGrid, tmp);
|
|
}
|
|
|
|
GUILayout.FlexibleSpace();
|
|
|
|
if( GUILayout.Button("Done"))
|
|
this.Close();
|
|
}
|
|
}
|
|
|
|
}
|