Rasagar/Library/PackageCache/com.unity.timeline/Runtime/Utilities/IPropertyCollector.cs
2024-08-26 23:07:20 +03:00

103 lines
4.6 KiB
C#

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