Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,81 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Timeline;
|
||||
using UnityEngine.Playables;
|
||||
|
||||
namespace UnityEditor.Timeline
|
||||
{
|
||||
partial class TimelineWindow
|
||||
{
|
||||
TimeAreaItem m_PlayHead;
|
||||
|
||||
void TimeCursorGUI(TimelineItemArea area)
|
||||
{
|
||||
DrawTimeOnSlider();
|
||||
if (!CanDrawTimeCursor(area))
|
||||
return;
|
||||
|
||||
if (m_PlayHead == null || m_PlayHead.style != styles.timeCursor)
|
||||
{
|
||||
m_PlayHead = new TimeAreaItem(styles.timeCursor, OnTrackHeadDrag);
|
||||
m_PlayHead.AddManipulator(new PlayheadContextMenu(m_PlayHead));
|
||||
}
|
||||
|
||||
var headerMode = area == TimelineItemArea.Header;
|
||||
DrawTimeCursor(headerMode, !headerMode);
|
||||
}
|
||||
|
||||
bool CanDrawTimeCursor(TimelineItemArea area)
|
||||
{
|
||||
if (!currentMode.ShouldShowTimeCursor(state))
|
||||
return false;
|
||||
|
||||
if (treeView == null || state.editSequence.asset == null || (state.editSequence.asset != null && state.IsEditingAnEmptyTimeline()))
|
||||
return false;
|
||||
|
||||
if (area == TimelineItemArea.Lines && !state.TimeIsInRange((float)state.editSequence.time))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void DrawTimeOnSlider()
|
||||
{
|
||||
if (currentMode.ShouldShowTimeCursor(state))
|
||||
{
|
||||
var colorDimFactor = EditorGUIUtility.isProSkin ? 0.7f : 0.9f;
|
||||
var c = styles.timeCursor.normal.textColor * colorDimFactor;
|
||||
|
||||
float time = Mathf.Max((float)state.editSequence.time, 0);
|
||||
float duration = (float)state.editSequence.duration;
|
||||
|
||||
m_TimeArea.DrawTimeOnSlider(time, c, duration, DirectorStyles.kDurationGuiThickness);
|
||||
}
|
||||
}
|
||||
|
||||
void DrawTimeCursor(bool drawHead, bool drawline)
|
||||
{
|
||||
m_PlayHead.HandleManipulatorsEvents(state);
|
||||
|
||||
if (Event.current.type == EventType.MouseDown && Event.current.button == 0)
|
||||
{
|
||||
if (state.timeAreaRect.Contains(Event.current.mousePosition))
|
||||
{
|
||||
state.SetPlaying(false);
|
||||
m_PlayHead.HandleManipulatorsEvents(state);
|
||||
state.editSequence.time = Math.Max(0.0, state.GetSnappedTimeAtMousePosition(Event.current.mousePosition));
|
||||
}
|
||||
}
|
||||
|
||||
m_PlayHead.drawLine = drawline;
|
||||
m_PlayHead.drawHead = drawHead;
|
||||
m_PlayHead.Draw(sequenceContentRect, state, state.editSequence.time);
|
||||
}
|
||||
|
||||
void OnTrackHeadDrag(double newTime)
|
||||
{
|
||||
state.editSequence.time = Math.Max(0.0, newTime);
|
||||
m_PlayHead.showTooltip = true;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue