protected override void OnGUIContent() { if (Data == null) { var tt = (track as XTransformTrack); Data = tt?.Data; } if (Data?.time != null) { EditorKey.BuildAndDraw(RenderRect, Data.time, keys); } }
public override void PostGUI() { HashSet <float> set = curveBindObject.GetAllKeyTimes(); if (set != null) { EditorKey.BuildEditorKeys(rect, set, keys); for (int i = 0; i < set.Count; i++) { keys[i].Draw(); } } base.PostGUI(); }
private void BuildEditorKeys(HashSet <float> set) { if (set.Count != keys.Count) { keys.Clear(); foreach (var it in set) { EditorKey ek = new EditorKey(it, rect); keys.Add(ek); } } else { int i = 0; foreach (var it in set) { keys[i++].Update(it, rect); } } }
/// <summary> /// build editor keys /// </summary> /// <param name="rect">clip or track rect</param> /// <param name="set">time set</param> /// <param name="keys">build result</param> public static void BuildEditorKeys(Rect rect, float[] set, List <EditorKey> keys) { if (set.Length != keys.Count) { keys.Clear(); foreach (var it in set) { EditorKey ek = new EditorKey(it, rect); keys.Add(ek); } } else { int i = 0; foreach (var it in set) { keys[i++].Update(it, rect); } } }