48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
|
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);
|
||
|
}
|
||
|
}
|
||
|
}
|