using System.Collections.Generic; // Cinema Suite using UnityEngine; namespace CinemaDirector { /// /// An implementation of an event that can be performed on an arbitrary actor. /// [ExecuteInEditMode] public abstract class CinemaActorEvent : TimelineItem { /// /// Trigger this event using the given actor. /// /// The actor to perform the event on. public abstract void Trigger(GameObject Actor); /// /// Reverse the trigger. /// /// The actor to perform the event on. public virtual void Reverse(GameObject Actor) { } public virtual void SetTimeTo(float deltaTime) { } public virtual void Pause() { } public virtual void Resume() { } public virtual void Initialize(GameObject Actor) { } public virtual void Stop(GameObject Actor) { } /// /// Get the actors associated with this Actor Event. Can return null. /// /// A set of actors related to this actor event. public virtual List GetActors() { IMultiActorTrack track = (TimelineTrack as IMultiActorTrack); if (track != null) { return track.Actors; } return null; } /// /// The Actor Track Group associated with this event. /// public ActorTrackGroup ActorTrackGroup { get { return this.TimelineTrack.TrackGroup as ActorTrackGroup; } } } }