Skip to content

Commit 9797c74

Browse files
committed
Added vector2 minmax slider option
1 parent 394bd82 commit 9797c74

File tree

3 files changed

+38
-3
lines changed

3 files changed

+38
-3
lines changed

Assets/com.alelievr.NodeGraphProcessor/Editor/Utils/ExposedParameterDrawer.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,38 @@ public override VisualElement CreatePropertyGUI(SerializedProperty property)
110110
}
111111
}
112112

113+
[CustomPropertyDrawer(typeof(Vector2Parameter))]
114+
public class Vector2ParameterDrawer : ExposedParameterDrawer
115+
{
116+
public override VisualElement CreatePropertyGUI(SerializedProperty property)
117+
{
118+
var container = new VisualElement();
119+
var val = GetValProperty(property);
120+
var name = GetNameProperty(property);
121+
122+
var settings = GetSettingsProperty(property);
123+
var mode = settings.FindPropertyRelative(nameof(Vector2Parameter.Vector2Settings.mode));
124+
var min = settings.FindPropertyRelative(nameof(Vector2Parameter.Vector2Settings.min));
125+
var max = settings.FindPropertyRelative(nameof(Vector2Parameter.Vector2Settings.max));
126+
container.Add(new IMGUIContainer(() => {
127+
EditorGUI.BeginChangeCheck();
128+
if ((Vector2Parameter.Vector2Mode)mode.enumValueIndex == Vector2Parameter.Vector2Mode.MinMaxSlider)
129+
{
130+
float x = val.vector2Value.x;
131+
float y = val.vector2Value.y;
132+
EditorGUILayout.MinMaxSlider(name.stringValue, ref x, ref y, min.floatValue, max.floatValue);
133+
val.vector2Value = new Vector2(x, y);
134+
}
135+
else
136+
val.vector2Value = EditorGUILayout.Vector2Field(name.stringValue, val.vector2Value);
137+
if (EditorGUI.EndChangeCheck())
138+
ApplyModifiedProperties(property);
139+
}));
140+
141+
return container;
142+
}
143+
}
144+
113145
[CustomPropertyDrawer(typeof(GradientParameter))]
114146
public class GradientParameterDrawer : ExposedParameterDrawer
115147
{
@@ -289,6 +321,8 @@ public override VisualElement CreatePropertyGUI(SerializedProperty settingsPrope
289321

290322
settings.Add(CreateHideInInspectorField(settingsProperty));
291323
settings.Add(CreateSettingsField(settingsProperty, nameof(Vector2Parameter.Vector2Settings.mode), "Mode"));
324+
settings.Add(CreateSettingsField(settingsProperty, nameof(Vector2Parameter.Vector2Settings.min), "Min"));
325+
settings.Add(CreateSettingsField(settingsProperty, nameof(Vector2Parameter.Vector2Settings.max), "Max"));
292326

293327
return settings;
294328
}

Assets/com.alelievr.NodeGraphProcessor/Editor/Views/BaseGraphView.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1293,7 +1293,6 @@ public void Dispose()
12931293
NodeProvider.UnloadGraph(graph);
12941294
exposedParameterFactory.Dispose();
12951295
exposedParameterFactory = null;
1296-
Debug.Log("Dispose field factory!");
12971296

12981297
graph.onExposedParameterListChanged -= OnExposedParameterListChanged;
12991298
graph.onExposedParameterModified += (s) => onExposedParameterModified?.Invoke(s);

Assets/com.alelievr.NodeGraphProcessor/Runtime/Elements/ExposedParameter.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,16 +202,18 @@ public class Vector2Parameter : ExposedParameter
202202
public enum Vector2Mode
203203
{
204204
Default,
205-
MinMaxRange,
205+
MinMaxSlider,
206206
}
207207

208208
[Serializable]
209209
public class Vector2Settings : Settings
210210
{
211211
public Vector2Mode mode;
212+
public float min = 0;
213+
public float max = 1;
212214

213215
public override bool Equals(Settings param)
214-
=> base.Equals(param) && mode == ((Vector2Settings)param).mode;
216+
=> base.Equals(param) && mode == ((Vector2Settings)param).mode && min == ((Vector2Settings)param).min && max == ((Vector2Settings)param).max;
215217
}
216218

217219
[SerializeField] Vector2 val;

0 commit comments

Comments
 (0)