using System.Collections.Generic;
namespace UnityEngine.Timeline
{
///
/// Interface used to inform the Timeline Editor about potential property modifications that may occur while previewing.
///
public interface IPropertyCollector
{
///
/// Sets the active game object for subsequent property modifications.
///
/// The GameObject to push.
void PushActiveGameObject(GameObject gameObject);
///
/// Removes the active GameObject from the modification stack, restoring the previous value.
///
void PopActiveGameObject();
///
/// Add properties modified by an animation clip.
///
/// The animation clip that contains the properties
void AddFromClip(AnimationClip clip);
///
/// Add property modifications specified by a list of animation clips.
///
/// The list of animation clips used to determine which property modifications to apply.
void AddFromClips(IEnumerable clips);
///
/// Add property modifications using the serialized property name.
///
/// The name of the serialized property
/// The type of the component the property exists on
///
/// This method uses the most recent gameObject from PushActiveGameObject
///
void AddFromName(string name) where T : Component;
///
/// Add property modifications using the serialized property name.
///
/// The name of the serialized property
///
/// This method uses the most recent gameObject from PushActiveGameObject
///
void AddFromName(string name);
///
/// Add property modifications modified by an animation clip.
///
/// The GameObject where the properties exist
/// The animation clip that contains the properties
void AddFromClip(GameObject obj, AnimationClip clip);
///
/// Add property modifications specified by a list of animation clips.
///
/// The gameObject that will be animated
/// The list of animation clips used to determine which property modifications to apply.
void AddFromClips(GameObject obj, IEnumerable clips);
///
/// Add property modifications using the serialized property name.
///
/// The name of the serialized property
/// The gameObject where the properties exist
/// The type of the component the property exists on>
void AddFromName(GameObject obj, string name) where T : Component;
///
/// Add property modifications using the serialized property name.
///
/// The gameObject where the properties exist
/// The name of the serialized property
void AddFromName(GameObject obj, string name);
///
/// Add property modifications using the serialized property name.
///
/// The name of the serialized property
/// The component where the properties exist
void AddFromName(Component component, string name);
///
/// Set all serializable properties on a component to be under preview control.
///
/// The gameObject where the properties exist
/// The component to set in preview mode
void AddFromComponent(GameObject obj, Component component);
///
/// Add property modifications modified by an animation clip.
///
/// The Object where the properties exist
/// The animation clip that contains the properties
void AddObjectProperties(Object obj, AnimationClip clip);
}
}