public static void RenderCurveProperty(VisualElement container, string name, object value, Action <object> setter) { var field = new CurveField(name); field.SetValueWithoutNotify((AnimationCurve)value); field.MarkDirtyRepaint(); field.RegisterValueChangedCallback(evt => setter(evt.newValue)); container.Add(field); }