diff --git a/Editor/ClusterInspector.cs b/Editor/ClusterInspector.cs index 9728495..bd0e313 100644 --- a/Editor/ClusterInspector.cs +++ b/Editor/ClusterInspector.cs @@ -636,7 +636,9 @@ public class ClusterInspector : Editor { EditorGUILayout.CurveField(neuron.curve, Color.cyan, new Rect(0, 0, 1, neuron.curveMax)); else EditorGUILayout.CurveField(neuron.curve, Color.cyan, new Rect(0, neuron.curveMax, 1, -neuron.curveMax)); - neuron.curvePreset = (Neuron.CurvePresets)EditorGUILayout.EnumPopup(neuron.curvePreset, GUILayout.Width(100)); + Neuron.CurvePresets newPreset = (Neuron.CurvePresets)EditorGUILayout.EnumPopup(neuron.curvePreset, GUILayout.Width(100)); + anythingChanged |= newPreset != neuron.curvePreset; + neuron.curvePreset = newPreset; EditorGUILayout.EndHorizontal(); } if (neuron.array == null || neuron.array.nuclei == null || neuron.array.nuclei.Count() == 0) diff --git a/Neuron.cs b/Neuron.cs index 089a862..45d5729 100644 --- a/Neuron.cs +++ b/Neuron.cs @@ -41,10 +41,14 @@ public class Neuron : Nucleus { Custom } [SerializeField] - private CurvePresets _curvePreset; + public CurvePresets _curvePreset; public CurvePresets curvePreset { get { return _curvePreset; } set { + foreach (Neuron nucleus in array.nuclei.Cast()) { + nucleus._curvePreset = value; + nucleus.curve = GenerateCurve(); + } _curvePreset = value; this.curve = GenerateCurve(); } @@ -160,6 +164,7 @@ public class Neuron : Nucleus { clone.combinator = this.combinator; clone.curve = this.curve; clone.curvePreset = this.curvePreset; + Debug.Log($"clone preset {clone.name} = {clone.curvePreset}"); clone.curveMax = this.curveMax; clone.average = this.average; }