protected override void updateHeaderControl4(UnityEngine.Rect position) { MultiCurveTrack track = TargetTrack.Behaviour as MultiCurveTrack; if (track == null) { return; } Color temp = GUI.color; GUI.color = (track.TimelineItems.Length > 0) ? Color.green : Color.red; if (GUI.Button(position, string.Empty, TrackGroupControl.styles.addIcon)) { addNewCurveItem(track); } GUI.color = temp; }
internal static CinemaMultiActorCurveClip CreateMultiActorClipCurve(MultiCurveTrack multiCurveTrack) { string name = DirectorHelper.getCutsceneItemName(multiCurveTrack.gameObject, CURVE_CLIP_NAME_DEFAULT, typeof(CinemaMultiActorCurveClip)); GameObject item = new GameObject(name); item.transform.parent = multiCurveTrack.transform; CinemaMultiActorCurveClip clip = item.AddComponent <CinemaMultiActorCurveClip>(); SortedDictionary <float, CinemaMultiActorCurveClip> sortedItems = new SortedDictionary <float, CinemaMultiActorCurveClip>(); foreach (CinemaMultiActorCurveClip c in multiCurveTrack.TimelineItems) { sortedItems.Add(c.Firetime, c); } float latestTime = 0; float length = DEFAULT_CURVE_LENGTH; foreach (CinemaMultiActorCurveClip c in sortedItems.Values) { if (latestTime >= c.Firetime) { latestTime = Mathf.Max(latestTime, c.Firetime + c.Duration); } else { length = c.Firetime - latestTime; break; } } clip.Firetime = latestTime; clip.Duration = length; return(clip); }
protected override void showBodyContextMenu(Event evt) { MultiCurveTrack itemTrack = TargetTrack.Behaviour as MultiCurveTrack; if (itemTrack == null) { return; } Behaviour b = DirectorCopyPaste.Peek(); PasteContext pasteContext = new PasteContext(evt.mousePosition, itemTrack); GenericMenu createMenu = new GenericMenu(); if (b != null && DirectorHelper.IsTrackItemValidForTrack(b, itemTrack)) { createMenu.AddItem(new GUIContent("Paste"), false, pasteItem, pasteContext); } else { createMenu.AddDisabledItem(new GUIContent("Paste")); } createMenu.ShowAsContext(); }
public PasteContext(Vector2 mousePosition, MultiCurveTrack track) { this.mousePosition = mousePosition; this.track = track; }
private void addNewCurveItem(MultiCurveTrack track) { Undo.RegisterCreatedObjectUndo(CutsceneItemFactory.CreateMultiActorClipCurve(track), "Created Multi Actor Clip Curve"); }