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;
}
}
}
}