57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | namespace UnityEditor.Timeline | ||
|  | { | ||
|  |     partial class TimelineWindow | ||
|  |     { | ||
|  |         void InitializeStateChange() | ||
|  |         { | ||
|  |             state.OnPlayStateChange += OnPreviewPlayModeChanged; | ||
|  |             state.OnDirtyStampChange += OnStateChange; | ||
|  |             state.OnBeforeSequenceChange += OnBeforeSequenceChange; | ||
|  |             state.OnAfterSequenceChange += OnAfterSequenceChange; | ||
|  | 
 | ||
|  |             state.OnRebuildGraphChange += () => | ||
|  |             { | ||
|  |                 // called when the graph is rebuild, since the UI tree isn't necessarily rebuilt. | ||
|  |                 if (!state.rebuildGraph) | ||
|  |                 { | ||
|  |                     // send callbacks to the tacks | ||
|  |                     if (treeView != null) | ||
|  |                     { | ||
|  |                         var allTrackGuis = treeView.allTrackGuis; | ||
|  |                         if (allTrackGuis != null) | ||
|  |                         { | ||
|  |                             for (int i = 0; i < allTrackGuis.Count; i++) | ||
|  |                                 allTrackGuis[i].OnGraphRebuilt(); | ||
|  |                         } | ||
|  |                     } | ||
|  |                 } | ||
|  |             }; | ||
|  | 
 | ||
|  |             state.OnTimeChange += () => | ||
|  |             { | ||
|  |                 if (EditorApplication.isPlaying == false) | ||
|  |                 { | ||
|  |                     state.UpdateRecordingState(); | ||
|  |                     EditorApplication.SetSceneRepaintDirty(); | ||
|  |                 } | ||
|  | 
 | ||
|  |                 if (state.ignorePreview && state.IsPlayableGraphDone()) | ||
|  |                     state.Pause(); | ||
|  | 
 | ||
|  |                 // the time is sync'd prior to the callback | ||
|  |                 state.Evaluate();     // will do the repaint | ||
|  | 
 | ||
|  |                 InspectorWindow.RepaintAllInspectors(); | ||
|  |             }; | ||
|  | 
 | ||
|  |             state.OnRecordingChange += () => | ||
|  |             { | ||
|  |                 if (!state.recording) | ||
|  |                 { | ||
|  |                     TrackAssetRecordingExtensions.ClearRecordingState(); | ||
|  |                 } | ||
|  |             }; | ||
|  |         } | ||
|  |     } | ||
|  | } |