void CreateContextMenu(GameObject animatedGo, AnimationClip clip, float time, int eventIndex, bool[] selectedEvents) { GenericMenu menu = new GenericMenu(); var contextData = new EventLineContextMenuObject(animatedGo, clip, time, eventIndex, selectedEvents); var selectedCount = selectedEvents.Count(selected => selected); menu.AddItem(Styles.textAddEvent, false, EventLineContextMenuAdd, contextData); if (selectedCount > 0 || eventIndex != -1) { menu.AddItem(selectedCount > 1 ? Styles.textDeleteEvents : Styles.textDeleteEvent, false, EventLineContextMenuDelete, contextData); menu.AddItem(Styles.textCopyEvents, false, EventLineContextMenuCopy, contextData); } else { menu.AddDisabledItem(Styles.textDeleteEvents); menu.AddDisabledItem(Styles.textCopyEvents); } if (AnimationWindowEventsClipboard.CanPaste()) { menu.AddItem(Styles.textPasteEvents, false, EventLineContextMenuPaste, contextData); } else { menu.AddDisabledItem(Styles.textPasteEvents); } menu.ShowAsContext(); }
internal void PasteEvents(GameObject animated, AnimationClip clip, float time) { var oldEvents = AnimationUtility.GetAnimationEvents(clip); var newEvents = AnimationWindowEventsClipboard.AddPastedEvents(oldEvents, time, out var selected); if (newEvents == null) { return; } Undo.RegisterCompleteObjectUndo(clip, "Paste Events"); EditEvents(animated, clip, selected); AnimationUtility.SetAnimationEvents(clip, newEvents); m_DirtyTooltip = true; }
void CopyEvents(AnimationClip clip, bool[] selected, int explicitIndex = -1) { var allEvents = new List <AnimationEvent>(AnimationUtility.GetAnimationEvents(clip)); AnimationWindowEventsClipboard.CopyEvents(allEvents, selected, explicitIndex); }