/// <summary>
/// Runs a GUI using EditorGUILayout for these parameters.
/// This GUI can be used to modify each parameter's "default value" fields.
/// Returns whether any values have been changed.
/// </summary>
public bool ParamEditorGUI()
{
bool changed = false;
for (int i = 0; i < FloatParams.Count; ++i)
{
GUILayout.BeginHorizontal();
GUILayout.Label(StringUtils.PrettifyVarName(FloatParams[i].Name));
float oldVal = FloatParams[i].DefaultValue;
if (FloatParams[i].IsSlider)
{
GUILayout.Label(FloatParams[i].SliderMin.ToString());
FloatParams[i] = new FloatParamInfo(FloatParams[i],
Mathf.InverseLerp(FloatParams[i].SliderMin, FloatParams[i].SliderMax,
GUILayout.HorizontalSlider(Mathf.Lerp(FloatParams[i].SliderMin,
FloatParams[i].SliderMax,
FloatParams[i].DefaultValue),
FloatParams[i].SliderMin,
FloatParams[i].SliderMax,
GUILayout.MinWidth(50.0f))));
GUILayout.Label(FloatParams[i].SliderMax.ToString());
}
else
{
FloatParams[i] = new FloatParamInfo(FloatParams[i],
EditorGUILayout.FloatField(FloatParams[i].DefaultValue));
}
changed = (changed || Node.AreFloatsDifferent(oldVal, FloatParams[i].DefaultValue));
GUILayout.EndHorizontal();
}
for (int i = 0; i < Tex2DParams.Count; ++i)
{
GUILayout.BeginHorizontal();
GUILayout.Label(StringUtils.PrettifyVarName(Tex2DParams[i].Name));
Texture2D oldVal = Tex2DParams[i].DefaultVal;
Tex2DParams[i] = new Texture2DParamInfo(Tex2DParams[i].Name,
(Texture2D)EditorGUILayout.ObjectField(Tex2DParams[i].DefaultVal,
typeof(Texture2D), false));
changed = (oldVal != Tex2DParams[i].DefaultVal);
GUILayout.EndHorizontal();
}
return changed;
}