public static ICurvesOwner ToCurvesOwner(IPlayableAsset playableAsset, TimelineAsset timeline) { if (playableAsset == null) { return(null); } var curvesOwner = playableAsset as ICurvesOwner; if (curvesOwner == null) { // If the asset is not directly an ICurvesOwner, it might be the asset for a TimelineClip curvesOwner = TimelineRecording.FindClipWithAsset(timeline, playableAsset); } return(curvesOwner); }
public override bool Execute(ActionContext actionContext) { WindowState state = TimelineEditor.state; PlayableDirector director = TimelineEditor.inspectedDirector; if (!CanExecute(state, actionContext) || director == null) { return(false); } IEnumerable <TrackAsset> keyableTracks = GetKeyableTracks(state, actionContext); var curveSelected = SelectionManager.GetCurrentInlineEditorCurve(); if (curveSelected != null) { var sel = curveSelected.clipCurveEditor.GetSelectedProperties().ToList(); var go = (director.GetGenericBinding(curveSelected.owner) as Component).gameObject; if (sel.Count > 0) { TimelineRecording.KeyProperties(go, state, sel); } else { var binding = director.GetGenericBinding(curveSelected.owner) as Component; TimelineRecording.KeyAllProperties(binding, state); } } else { foreach (var track in keyableTracks) { var binding = director.GetGenericBinding(track) as Component; TimelineRecording.KeyAllProperties(binding, state); } } return(true); }
UndoPropertyModification[] PostprocessAnimationRecordingModifications(UndoPropertyModification[] modifications) { DirtyModifiedObjects(modifications); var remaining = TimelineRecording.ProcessUndoModification(modifications, state); // if we've changed, we need to repaint the sequence window to show clip length changes if (remaining != modifications) { // only update if us or the sequencer window has focus // Prevents color pickers and other dialogs from being wrongly dismissed bool repaint = (focusedWindow == null) || (focusedWindow is InspectorWindow) || (focusedWindow is TimelineWindow); if (repaint) { Repaint(); } } return(remaining); }
public void AddKey(PropertyModification[] modifications) { TimelineRecording.AddKey(modifications, state); state.Refresh(); }
public void GoToPreviousKeyframe(PropertyModification[] modifications) { TimelineRecording.PrevKey(modifications[0].target, modifications, state); TimelineEditor.Refresh(RefreshReason.SceneNeedsUpdate); }
public void GoToPreviousKeyframe(PropertyModification[] modifications) { TimelineRecording.PrevKey(modifications[0].target, modifications, state); state.Refresh(); }
internal static bool HasAnyPlayableAssetModifications(UndoPropertyModification[] modifications) { return(modifications.Any(x => (TimelineRecording.GetTarget(x) as IPlayableAsset) != null)); }
public void AddKey(PropertyModification[] modifications) { TimelineRecording.AddKey(modifications, this.state); this.state.Refresh(false); }
public bool CurveExists(PropertyModification[] modifications) { return(modifications.Length != 0 && !(modifications[0].target == null) && TimelineRecording.HasCurve(modifications, modifications[0].target, this.state)); }