using UnityEngine; namespace UnityEditor.Timeline { static class TimeIndicator { static readonly Tooltip s_Tooltip = new Tooltip(DirectorStyles.Instance.displayBackground, DirectorStyles.Instance.tinyFont); public static void Draw(WindowState state, double time) { var bounds = state.timeAreaRect; bounds.xMin = Mathf.Max(bounds.xMin, state.TimeToTimeAreaPixel(time)); using (new GUIViewportScope(state.timeAreaRect)) { s_Tooltip.text = TimeReferenceUtility.ToTimeString(time); var tooltipBounds = s_Tooltip.bounds; tooltipBounds.xMin = bounds.xMin - (tooltipBounds.width / 2.0f); tooltipBounds.y = bounds.y; s_Tooltip.bounds = tooltipBounds; if (time >= 0) s_Tooltip.Draw(); } if (time >= 0) { Graphics.DrawLineAtTime(state, time, Color.black, true); } } public static void Draw(WindowState state, double start, double end) { var bounds = state.timeAreaRect; bounds.xMin = Mathf.Max(bounds.xMin, state.TimeToTimeAreaPixel(start)); bounds.xMax = Mathf.Min(bounds.xMax, state.TimeToTimeAreaPixel(end)); var color = DirectorStyles.Instance.selectedStyle.focused.textColor; color.a = 0.12f; EditorGUI.DrawRect(bounds, color); Draw(state, start); Draw(state, end); } } }