102 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			102 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | 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()); | ||
|  |         } | ||
|  |     } | ||
|  | } |