A game about forced loneliness, made by TACStudios
1using System.Linq;
2using UnityEngine;
3using UnityEngine.Timeline;
4
5namespace UnityEditor.Timeline
6{
7 static class AnimationOffsetMenu
8 {
9 public static string MatchFieldsPrefix = L10n.Tr("Match Offsets Fields/");
10
11 static bool EnforcePreviewMode()
12 {
13 TimelineEditor.state.previewMode = true; // try and set the preview mode
14 if (!TimelineEditor.state.previewMode)
15 {
16 Debug.LogError("Match clips cannot be completed because preview mode cannot be enabed");
17 return false;
18 }
19 return true;
20 }
21
22 internal static void MatchClipsToPrevious(TimelineClip[] clips)
23 {
24 if (!EnforcePreviewMode())
25 return;
26
27 clips = clips.OrderBy(x => x.start).ToArray();
28 foreach (var clip in clips)
29 {
30 var sceneObject = TimelineUtility.GetSceneGameObject(TimelineEditor.inspectedDirector, clip.GetParentTrack());
31 if (sceneObject != null)
32 {
33 TimelineAnimationUtilities.MatchPrevious(clip, sceneObject.transform, TimelineEditor.inspectedDirector);
34 }
35 }
36
37 InspectorWindow.RepaintAllInspectors();
38 TimelineEditor.Refresh(RefreshReason.ContentsModified);
39 }
40
41 internal static void MatchClipsToNext(TimelineClip[] clips)
42 {
43 if (!EnforcePreviewMode())
44 return;
45
46 clips = clips.OrderByDescending(x => x.start).ToArray();
47 foreach (var clip in clips)
48 {
49 var sceneObject = TimelineUtility.GetSceneGameObject(TimelineEditor.inspectedDirector, clip.GetParentTrack());
50 if (sceneObject != null)
51 {
52 TimelineAnimationUtilities.MatchNext(clip, sceneObject.transform, TimelineEditor.inspectedDirector);
53 }
54 }
55
56 InspectorWindow.RepaintAllInspectors();
57 TimelineEditor.Refresh(RefreshReason.ContentsModified);
58 }
59
60 public static void ResetClipOffsets(TimelineClip[] clips)
61 {
62 foreach (var clip in clips)
63 {
64 var asset = clip.asset as AnimationPlayableAsset;
65 if (asset != null)
66 asset.ResetOffsets();
67 }
68
69 InspectorWindow.RepaintAllInspectors();
70 TimelineEditor.Refresh(RefreshReason.ContentsModified);
71 }
72 }
73}