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.Linq;using UnityEngine;using UnityEngine.Timeline;
namespace UnityEditor.Timeline{ static class AnimationOffsetMenu { public static GUIContent MatchPreviousMenuItem = EditorGUIUtility.TrTextContent("Match Offsets To Previous Clip"); public static GUIContent MatchNextMenuItem = EditorGUIUtility.TrTextContent("Match Offsets To Next Clip"); public static string MatchFieldsPrefix = "Match Offsets Fields/"; public static GUIContent ResetOffsetMenuItem = EditorGUIUtility.TrTextContent("Reset Offsets");
static bool EnforcePreviewMode(WindowState state) { state.previewMode = true; // try and set the preview mode
if (!state.previewMode) { Debug.LogError("Match clips cannot be completed because preview mode cannot be enabed"); return false; } return true; }
internal static void MatchClipsToPrevious(WindowState state, TimelineClip[] clips) { if (!EnforcePreviewMode(state)) return;
clips = clips.OrderBy(x => x.start).ToArray(); foreach (var clip in clips) { var sceneObject = TimelineUtility.GetSceneGameObject(state.editSequence.director, clip.parentTrack); if (sceneObject != null) { TimelineUndo.PushUndo(clip.asset, "Match Clip"); TimelineAnimationUtilities.MatchPrevious(clip, sceneObject.transform, state.editSequence.director); } }
InspectorWindow.RepaintAllInspectors(); TimelineEditor.Refresh(RefreshReason.ContentsModified); }
internal static void MatchClipsToNext(WindowState state, TimelineClip[] clips) { if (!EnforcePreviewMode(state)) return;
clips = clips.OrderByDescending(x => x.start).ToArray(); foreach (var clip in clips) { var sceneObject = TimelineUtility.GetSceneGameObject(state.editSequence.director, clip.parentTrack); if (sceneObject != null) { TimelineUndo.PushUndo(clip.asset, "Match Clip"); TimelineAnimationUtilities.MatchNext(clip, sceneObject.transform, state.editSequence.director); } }
InspectorWindow.RepaintAllInspectors(); TimelineEditor.Refresh(RefreshReason.ContentsModified); }
public static void ResetClipOffsets(WindowState state, TimelineClip[] clips) { foreach (var clip in clips) { if (clip.asset is AnimationPlayableAsset) { TimelineUndo.PushUndo(clip.asset, "Reset Offsets"); var playableAsset = (AnimationPlayableAsset)clip.asset; playableAsset.ResetOffsets(); } } state.rebuildGraph = true;
InspectorWindow.RepaintAllInspectors(); TimelineEditor.Refresh(RefreshReason.SceneNeedsUpdate); } }}
|