mirror of
https://github.com/Project-Redacted/Highscores-Server.git
synced 2025-05-23 11:54:52 +00:00
Add example Unity Project
This commit is contained in:
parent
fda7ff28dd
commit
e3acdb9d6b
7122 changed files with 505543 additions and 2 deletions
|
@ -0,0 +1,222 @@
|
|||
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;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue