public override bool DrawTrack(Rect trackRect, TrackAsset trackAsset, Vector2 visibleTime, ITimelineState state) { this.m_TrackRect = trackRect; TimelineWindow.TimelineState timelineState = (TimelineWindow.TimelineState)state; bool result; if (!this.CanDraw(trackAsset, timelineState)) { result = true; } else { if (timelineState.recording && timelineState.IsArmedForRecord(trackAsset)) { InfiniteTrackDrawer.DrawRecordBackground(trackRect); } GUI.Box(trackRect, GUIContent.none, DirectorStyles.Instance.infiniteTrack); Rect rect = trackRect; rect.set_yMin(rect.get_yMax()); rect.set_height(15f); GUI.DrawTexture(rect, DirectorStyles.Instance.bottomShadow.get_normal().get_background(), 0); float[] keys = this.m_DataSource.GetKeys(); if (keys != null && keys.Length > 0) { float[] array = keys; for (int i = 0; i < array.Length; i++) { float key = array[i]; this.DrawKeyFrame(key, timelineState); } } result = true; } return(result); }
public TimelineTrackGUI(TreeViewController tv, TimelineTreeViewGUI w, int id, int depth, TreeViewItem parent, string displayName, TrackAsset sequenceActor) : base(tv, w, id, depth, parent, displayName, sequenceActor, false) { AnimationTrack animationTrack = sequenceActor as AnimationTrack; if (animationTrack != null) { this.m_InfiniteTrackDrawer = new InfiniteTrackDrawer(new AnimationTrackKeyDataSource(animationTrack)); this.UpdateInfiniteClipEditor(animationTrack, w.TimelineWindow); if (animationTrack.ShouldShowInfiniteClipEditor()) { this.clipCurveEditor = new ClipCurveEditor(new InfiniteClipCurveDataSource(this), w.TimelineWindow); } } this.m_HadProblems = false; this.m_InitHadProblems = false; this.m_Bindings = base.track.get_outputs().ToArray <PlayableBinding>(); base.AddManipulator(new TrackVerticalResize()); }
public TimelineTrackGUI(TreeViewController tv, TimelineTreeViewGUI w, int id, int depth, TreeViewItem parent, string displayName, TrackAsset sequenceActor) : base(tv, w, id, depth, parent, displayName, sequenceActor, false) { AnimationTrack animationTrack = sequenceActor as AnimationTrack; if (animationTrack != null) { m_InfiniteTrackDrawer = new InfiniteTrackDrawer(new AnimationTrackKeyDataSource(animationTrack)); } else if (sequenceActor.HasAnyAnimatableParameters() && !sequenceActor.clips.Any()) { m_InfiniteTrackDrawer = new InfiniteTrackDrawer(new TrackPropertyCurvesDataSource(sequenceActor)); } UpdateInfiniteClipEditor(w.TimelineWindow); var bindings = track.outputs.ToArray(); m_TrackDrawData.m_HasBinding = bindings.Length > 0; if (m_TrackDrawData.m_HasBinding) { m_TrackDrawData.m_Binding = bindings[0]; } m_TrackDrawData.m_IsSubTrack = IsSubTrack(); m_TrackDrawData.m_AllowsRecording = DoesTrackAllowsRecording(sequenceActor); m_DefaultTrackIcon = TrackResourceCache.GetTrackIcon(track); m_TrackEditor = CustomTimelineEditorCache.GetTrackEditor(sequenceActor); try { m_TrackDrawOptions = m_TrackEditor.GetTrackOptions(track, null); } catch (Exception e) { Debug.LogException(e); m_TrackDrawOptions = CustomTimelineEditorCache.GetDefaultTrackEditor().GetTrackOptions(track, null); } m_TrackDrawOptions.errorText = null; // explicitly setting to null for an uninitialized state RebuildGUICacheIfNecessary(); }
public TimelineTrackGUI(TreeViewController tv, TimelineTreeViewGUI w, int id, int depth, TreeViewItem parent, string displayName, TrackAsset sequenceActor) : base(tv, w, id, depth, parent, displayName, sequenceActor, false) { AnimationTrack animationTrack = sequenceActor as AnimationTrack; if (animationTrack != null) { m_InfiniteTrackDrawer = new InfiniteTrackDrawer(new AnimationTrackKeyDataSource(animationTrack)); UpdateInfiniteClipEditor(animationTrack, w.TimelineWindow); if (animationTrack.ShouldShowInfiniteClipEditor()) { clipCurveEditor = new ClipCurveEditor(new InfiniteClipCurveDataSource(this), w.TimelineWindow); } } m_HadProblems = false; m_InitHadProblems = false; m_Bindings = track.outputs.ToArray(); }