Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,85 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.Playables;
|
||||
using UnityEngine.Timeline;
|
||||
|
||||
namespace UnityEditor.Timeline
|
||||
{
|
||||
partial class TimelineWindow
|
||||
{
|
||||
private TimelineAsset m_PreviousMasterSequence;
|
||||
|
||||
public override void ClearTimeline()
|
||||
{
|
||||
SetCurrentTimeline(null, null, null, true);
|
||||
}
|
||||
|
||||
public override void SetTimeline(TimelineAsset seq)
|
||||
{
|
||||
SetCurrentTimeline(seq, null, null);
|
||||
}
|
||||
|
||||
public override void SetTimeline(PlayableDirector director)
|
||||
{
|
||||
SetCurrentTimeline(director, null);
|
||||
}
|
||||
|
||||
public void SetCurrentTimeline(PlayableDirector director, TimelineClip hostClip)
|
||||
{
|
||||
var asset = director != null ? director.playableAsset as TimelineAsset : null;
|
||||
SetCurrentTimeline(asset, director, hostClip);
|
||||
}
|
||||
|
||||
void SetCurrentTimeline(TimelineAsset seq, PlayableDirector instanceOfDirector, TimelineClip hostClip, bool force = false)
|
||||
{
|
||||
if (state == null)
|
||||
return;
|
||||
|
||||
if (!force &&
|
||||
state.editSequence.hostClip == hostClip &&
|
||||
state.editSequence.director == instanceOfDirector &&
|
||||
state.editSequence.asset == seq)
|
||||
return;
|
||||
|
||||
state.SetCurrentSequence(seq, instanceOfDirector, hostClip);
|
||||
}
|
||||
|
||||
void OnBeforeSequenceChange()
|
||||
{
|
||||
treeView = null;
|
||||
m_MarkerHeaderGUI = null;
|
||||
m_TimeAreaDirty = true;
|
||||
|
||||
state.Reset();
|
||||
m_PlayableLookup.ClearPlayableLookup();
|
||||
|
||||
// clear old editors to caches, like audio previews, get flushed
|
||||
CustomTimelineEditorCache.ClearCache<ClipEditor>();
|
||||
CustomTimelineEditorCache.ClearCache<MarkerEditor>();
|
||||
CustomTimelineEditorCache.ClearCache<TrackEditor>();
|
||||
|
||||
m_PreviousMasterSequence = state.masterSequence.asset;
|
||||
}
|
||||
|
||||
void OnAfterSequenceChange()
|
||||
{
|
||||
Repaint();
|
||||
|
||||
m_SequencePath = state.GetCurrentSequencePath();
|
||||
|
||||
m_LastFrameHadSequence = state.editSequence.asset != null;
|
||||
TimelineWindowViewPrefs.SaveAll();
|
||||
|
||||
// this prevent clearing the animation window when going in/out of playmode, but
|
||||
// clears it when we switch master timelines
|
||||
// the cast to a object will handle the case where the sequence has been deleted.
|
||||
object previousMasterSequence = m_PreviousMasterSequence;
|
||||
bool isDeleted = previousMasterSequence != null && m_PreviousMasterSequence == null;
|
||||
bool hasChanged = m_PreviousMasterSequence != null && m_PreviousMasterSequence != state.masterSequence.asset;
|
||||
if (isDeleted || hasChanged)
|
||||
{
|
||||
AnimationClipCurveCache.Instance.Clear();
|
||||
TimelineAnimationUtilities.UnlinkAnimationWindow();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue