A game about forced loneliness, made by TACStudios
1using System.Collections.Generic;
2using UnityEditor.ShortcutManagement;
3using UnityEditor.Timeline;
4using UnityEditor.Timeline.Actions;
5using UnityEngine;
6using UnityEngine.Playables;
7using UnityEngine.Timeline;
8
9namespace DocCodeExamples
10{
11 class TimelineAttributesExamples_HideAPI
12 {
13 #region declare-sampleTrackBindingAttr
14
15 [TrackBindingType(typeof(Light), TrackBindingFlags.AllowCreateComponent)]
16 public class LightTrack : TrackAsset { }
17
18 #endregion
19
20 #region declare-menuEntryAttribute
21
22 [MenuEntry("Simple Menu Action")]
23 class SimpleMenuAction : TimelineAction
24 {
25 public override ActionValidity Validate(ActionContext actionContext)
26 {
27 return ActionValidity.Valid;
28 }
29
30 public override bool Execute(ActionContext actionContext)
31 {
32 return true;
33 }
34 }
35
36 [MenuEntry("Menu Action with priority", 9999)]
37 class MenuActionWithPriority : TimelineAction
38 {
39 public override ActionValidity Validate(ActionContext actionContext)
40 {
41 return ActionValidity.Valid;
42 }
43
44 public override bool Execute(ActionContext actionContext)
45 {
46 return true;
47 }
48 }
49
50 [MenuEntry("My Menu/Menu Action inside submenu")]
51 class MenuActionInsideSubMenu : TimelineAction
52 {
53 public override ActionValidity Validate(ActionContext actionContext)
54 {
55 return ActionValidity.Valid;
56 }
57
58 public override bool Execute(ActionContext actionContext)
59 {
60 return true;
61 }
62 }
63
64 #endregion
65
66 #region declare-timelineShortcutAttr
67
68 public class ShortcutAction : TimelineAction
69 {
70 public override ActionValidity Validate(ActionContext _)
71 {
72 return ActionValidity.Valid;
73 }
74
75 public override bool Execute(ActionContext _)
76 {
77 Debug.Log("Action executed.");
78 return true;
79 }
80
81 [TimelineShortcut("Test Action", KeyCode.K, ShortcutModifiers.Shift | ShortcutModifiers.Alt)]
82 public static void HandleShortCut(ShortcutArguments args)
83 {
84 Invoker.InvokeWithSelected<ShortcutAction>();
85 }
86 }
87
88 #endregion
89
90 #region declare-applyDefaultUndoAttr
91
92 [ApplyDefaultUndo]
93 public class SetNameToTypeAction : TrackAction
94 {
95 public override ActionValidity Validate(IEnumerable<TrackAsset> items)
96 {
97 return ActionValidity.Valid;
98 }
99
100 public override bool Execute(IEnumerable<TrackAsset> items)
101 {
102 foreach (TrackAsset track in items)
103 track.name = track.GetType().Name;
104 return true;
105 }
106 }
107
108 #endregion
109
110 #region declare-customStyleMarkerAttr
111
112 [CustomStyle("MyStyle")]
113 public class MyMarker : UnityEngine.Timeline.Marker { }
114
115 #endregion
116
117 #region declare-customTimelineEditorAttr
118
119 [CustomTimelineEditor(typeof(MyCustomClip))]
120 class MyCustomClipEditor : ClipEditor { }
121
122 #endregion
123
124 class MyCustomClip : PlayableAsset
125 {
126 public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
127 {
128 return Playable.Null;
129 }
130 }
131 }
132}