You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
4.3 KiB
101 lines
4.3 KiB
using System; |
|
using System.Collections.Generic; |
|
using UnityEngine; |
|
using UnityEngine.Timeline; |
|
|
|
namespace UnityEditor.Timeline.Actions |
|
{ |
|
/// <summary> |
|
/// Class containing methods to invoke actions. |
|
/// </summary> |
|
public static class Invoker |
|
{ |
|
/// <summary> |
|
/// Execute a given action with a context parameter. |
|
/// </summary> |
|
/// <typeparam name="T">Action type to execute.</typeparam> |
|
/// <param name="context">Context for the action.</param> |
|
/// <returns>True if the action has been executed, false otherwise.</returns> |
|
public static bool Invoke<T>(this ActionContext context) where T : TimelineAction |
|
{ |
|
var action = ActionManager.TimelineActions.GetCachedAction<T, TimelineAction>(); |
|
return ActionManager.ExecuteTimelineAction(action, context); |
|
} |
|
|
|
/// <summary> |
|
/// Execute a given action with tracks |
|
/// </summary> |
|
/// <typeparam name="T">Action type to execute.</typeparam> |
|
/// <param name="tracks">Tracks that the action will act on.</param> |
|
/// <returns>True if the action has been executed, false otherwise.</returns> |
|
public static bool Invoke<T>(this IEnumerable<TrackAsset> tracks) where T : TrackAction |
|
{ |
|
var action = ActionManager.TrackActions.GetCachedAction<T, TrackAction>(); |
|
return ActionManager.ExecuteTrackAction(action, tracks); |
|
} |
|
|
|
/// <summary> |
|
/// Execute a given action with clips |
|
/// </summary> |
|
/// <typeparam name="T">Action type to execute.</typeparam> |
|
/// <param name="clips">Clips that the action will act on.</param> |
|
/// <returns>True if the action has been executed, false otherwise.</returns> |
|
public static bool Invoke<T>(this IEnumerable<TimelineClip> clips) where T : ClipAction |
|
{ |
|
var action = ActionManager.ClipActions.GetCachedAction<T, ClipAction>(); |
|
return ActionManager.ExecuteClipAction(action, clips); |
|
} |
|
|
|
/// <summary> |
|
/// Execute a given action with markers |
|
/// </summary> |
|
/// <typeparam name="T">Action type to execute.</typeparam> |
|
/// <param name="markers">Markers that the action will act on.</param> |
|
/// <returns>True if the action has been executed, false otherwise.</returns> |
|
public static bool Invoke<T>(this IEnumerable<IMarker> markers) where T : MarkerAction |
|
{ |
|
var action = ActionManager.MarkerActions.GetCachedAction<T, MarkerAction>(); |
|
return ActionManager.ExecuteMarkerAction(action, markers); |
|
} |
|
|
|
/// <summary> |
|
/// Execute a given timeline action with the selected clips, tracks and markers. |
|
/// </summary> |
|
/// <typeparam name="T">Action type to execute.</typeparam> |
|
/// <returns>True if the action has been executed, false otherwise.</returns> |
|
public static bool InvokeWithSelected<T>() where T : TimelineAction |
|
{ |
|
return Invoke<T>(TimelineEditor.CurrentContext()); |
|
} |
|
|
|
/// <summary> |
|
/// Execute a given clip action with the selected clips. |
|
/// </summary> |
|
/// <typeparam name="T">Action type to execute.</typeparam> |
|
/// <returns>True if the action has been executed, false otherwise.</returns> |
|
public static bool InvokeWithSelectedClips<T>() where T : ClipAction |
|
{ |
|
return Invoke<T>(SelectionManager.SelectedClips()); |
|
} |
|
|
|
/// <summary> |
|
/// Execute a given track action with the selected tracks. |
|
/// </summary> |
|
/// <typeparam name="T">Action type to execute.</typeparam> |
|
/// <returns>True if the action has been executed, false otherwise.</returns> |
|
public static bool InvokeWithSelectedTracks<T>() where T : TrackAction |
|
{ |
|
return Invoke<T>(SelectionManager.SelectedTracks()); |
|
} |
|
|
|
/// <summary> |
|
/// Execute a given marker action with the selected markers. |
|
/// </summary> |
|
/// <typeparam name="T">Action type to execute.</typeparam> |
|
/// <returns>True if the action has been executed, false otherwise.</returns> |
|
public static bool InvokeWithSelectedMarkers<T>() where T : MarkerAction |
|
{ |
|
return Invoke<T>(SelectionManager.SelectedMarkers()); |
|
} |
|
} |
|
}
|
|
|