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(); } } }