123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- 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());
- }
- }
- }
|