namespace UnityEditor.Splines { sealed class CommonElementDrawer : ElementDrawer { readonly TangentModePropertyField m_Mode; readonly BezierTangentPropertyField m_BezierMode; public CommonElementDrawer() { Add(m_Mode = new TangentModePropertyField()); m_Mode.changed += () => { m_BezierMode.Update(targets); }; Add(m_BezierMode = new BezierTangentPropertyField()); m_BezierMode.changed += () => { m_Mode.Update(targets); }; } public override void Update() { base.Update(); m_Mode.Update(targets); m_BezierMode.Update(targets); } public override string GetLabelForTargets() { int knotCount = 0; int tangentCount = 0; for (int i = 0; i < targets.Count; ++i) { if (targets[i] is SelectableKnot) ++knotCount; else if (targets[i] is SelectableTangent) ++tangentCount; } return $"({knotCount}) Knots, ({tangentCount}) Tangents selected"; } } }