SW 중심대학 OSS GIT 서버
박건태, 이승준, 고기완, 이준호
새로운 배포
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using System;using UnityEngine;
namespace UnityEngine.Timeline{ /// <summary>
/// Specifies the type of PlayableAsset that a TrackAsset derived class can create clips of.
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] public class TrackClipTypeAttribute : Attribute { /// <summary>
/// The type of the clip class associate with this track
/// </summary>
public readonly Type inspectedType;
/// <summary>
/// Whether to allow automatic creation of these types.
/// </summary>
public readonly bool allowAutoCreate; // true will make it show up in menus
/// <summary>
/// </summary>
/// <param name="clipClass">The type of the clip class to associate with this track. Must derive from PlayableAsset.</param>
public TrackClipTypeAttribute(Type clipClass) { inspectedType = clipClass; allowAutoCreate = true; }
/// <summary>
/// </summary>
/// <param name="clipClass">The type of the clip class to associate with this track. Must derive from PlayableAsset.</param>
/// <param name="allowAutoCreate">Whether to allow automatic creation of these types. Default value is true.</param>
/// <remarks>Setting allowAutoCreate to false will cause Timeline to not show menu items for creating clips of this type.</remarks>
public TrackClipTypeAttribute(Type clipClass, bool allowAutoCreate) { inspectedType = clipClass; allowAutoCreate = false; } }
/// <summary>
/// Apply this to a PlayableBehaviour class or field to indicate that it is not animatable.
/// </summary>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Class)] public class NotKeyableAttribute : Attribute { }
/// <summary>
/// Options for track binding
/// </summary>
[Flags] public enum TrackBindingFlags { /// <summary>
/// No options specified
/// </summary>
None = 0,
/// <summary>
/// Allow automatic creating of component during gameObject drag and drop
/// </summary>
AllowCreateComponent = 1,
/// <summary>
/// All options specified
/// </summary>
All = AllowCreateComponent }
/// <summary>
/// Specifies the type of object that should be bound to a TrackAsset.
/// </summary>
/// <example>
/// <code>
/// using UnityEngine;
/// using UnityEngine.Timeline;
/// [TrackBindingType(typeof(Light), TrackBindingFlags.AllowCreateComponent)]
/// public class LightTrack : TrackAsset
/// {
/// }
/// </code>
/// </example>
/// <remarks>
/// Use this attribute when creating Custom Tracks to specify the type of object the track requires a binding to.
/// </remarks>
[AttributeUsage(AttributeTargets.Class)] public class TrackBindingTypeAttribute : Attribute { /// <summary>
/// The type of binding for the associate track
/// </summary>
public readonly Type type;
/// <summary>
/// Options for the the track binding
/// </summary>
public readonly TrackBindingFlags flags;
public TrackBindingTypeAttribute(Type type) { this.type = type; this.flags = TrackBindingFlags.All; }
public TrackBindingTypeAttribute(Type type, TrackBindingFlags flags) { this.type = type; this.flags = flags; } }
// indicates that child tracks are permitted on a track
// internal because not fully supported on custom classes yet
[AttributeUsage(AttributeTargets.Class, Inherited = false)] class SupportsChildTracksAttribute : Attribute { public readonly Type childType; public readonly int levels;
public SupportsChildTracksAttribute(Type childType = null, int levels = Int32.MaxValue) { this.childType = childType; this.levels = levels; } }
// indicates that the type should not be put on a PlayableTrack
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)] class IgnoreOnPlayableTrackAttribute : System.Attribute {}
// used to flag properties as using a time field (second/frames) display
class TimeFieldAttribute : PropertyAttribute { public enum UseEditMode { None, ApplyEditMode } public UseEditMode useEditMode { get; }
public TimeFieldAttribute(UseEditMode useEditMode = UseEditMode.ApplyEditMode) { this.useEditMode = useEditMode; } }
/// <summary>
/// Use this attribute to hide a class from Timeline menus.
/// </summary>
[AttributeUsage(AttributeTargets.Class, Inherited = false)] public class HideInMenuAttribute : Attribute {}
///<summary>
/// Use this attribute to customize the appearance of a Marker.
/// </summary>
/// Specify the style to use to draw a Marker.
/// <example>
/// [CustomStyle("MyStyle")]
/// public class MyMarker : UnityEngine.Timeline.Marker {}
/// </example>
/// How to create a custom style rule:
/// 1) Create a 'common.uss' USS file in an Editor folder in a StyleSheets/Extensions folder hierarchy.
/// Example of valid folder paths:
/// - Assets/Editor/StyleSheets/Extensions
/// - Assets/Editor/Markers/StyleSheets/Extensions
/// - Assets/Timeline/Editor/MyMarkers/StyleSheets/Extensions
/// Rules in 'dark.uss' are used if you use the Pro Skin and rules in 'light.uss' are used otherwise.
///
/// 2)In the USS file, create a styling rule to customize the appearance of the marker.
/// <example>
/// MyStyle
/// {
/// /* Specify the appearance of the marker in the collapsed state here. */
/// }
///
/// MyStyle:checked
/// {
/// /* Specify the appearance of the marker in the expanded state here. */
/// }
///
/// MyStyle:focused:checked
/// {
/// /* Specify the appearance of the marker in the selected state here. */
/// }
/// </example>
/// <seealso cref="UnityEngine.Timeline.Marker"/>
[AttributeUsage(AttributeTargets.Class)] public class CustomStyleAttribute : Attribute { /// <summary>
/// The name of the USS style.
/// </summary>
public readonly string ussStyle;
/// <param name="ussStyle">The name of the USS style.</param>
public CustomStyleAttribute(string ussStyle) { this.ussStyle = ussStyle; } }
/// <summary>
/// Use this attribute to assign a clip, marker or track to a category in a submenu
/// </summary>
[AttributeUsage(AttributeTargets.Class)] internal class MenuCategoryAttribute : Attribute { /// <summary>
/// The menu name of the category
/// </summary>
public readonly string category;
public MenuCategoryAttribute(string category) { this.category = category ?? string.Empty; } }}
|