12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using System.Collections.Generic;
- using System.Linq;
- using UnityEditor;
- using UnityEditor.Timeline;
- using UnityEditor.Timeline.Actions;
- using UnityEngine.Timeline;
- namespace Timeline.Samples
- {
-
-
- [MenuEntry("Create Annotation from clipboard contents")]
- public class CreateAnnotationAction : TimelineAction
- {
-
-
-
-
- public override ActionValidity Validate(ActionContext context)
- {
-
- string clipboardTextContent = EditorGUIUtility.systemCopyBuffer;
- if (clipboardTextContent.Length == 0)
- {
- return ActionValidity.Invalid;
- }
-
- IEnumerable<TrackAsset> selectedTracks = context.tracks;
- if (!selectedTracks.Any() || selectedTracks.All(track => track is GroupTrack))
- {
- return ActionValidity.NotApplicable;
- }
- return ActionValidity.Valid;
- }
-
- public override bool Execute(ActionContext context)
- {
-
-
-
- double time;
- if (context.invocationTime.HasValue)
- {
- time = context.invocationTime.Value;
- }
- else
- {
- time = TimelineEditor.inspectedDirector.time;
- }
- string clipboardTextContent = EditorGUIUtility.systemCopyBuffer;
- IEnumerable<TrackAsset> selectedTracks = context.tracks;
- foreach (TrackAsset track in selectedTracks)
- {
- if (track is GroupTrack)
- continue;
- AnnotationMarker annotation = track.CreateMarker<AnnotationMarker>(time);
- annotation.description = clipboardTextContent;
- annotation.title = "Annotation";
- }
- return true;
- }
- }
- }
|