public static void SetTargetAnimationClipIndex(int value) { TargetAnimationClipIndex = value; CanvasItemToEdit = null; _queueCanvasItemToEdit = null; _queueCanvasItemToEditChanged = false; }
private static void UpdateDrag(InternalUiAnimationEditorCanvasItem item) { float originalTime = GetTimeByLocalPosition(item.CachedX - InternalUiAnimationEditor.MousePositionPress.x); float cursorTime = GetTimeByMousePosition(InternalUiAnimationEditor.MousePosition.x); int cursorLayer = GetLayerByMousePosition(InternalUiAnimationEditor.MousePosition.y); item.SetDelay(originalTime + cursorTime + 0.1f); item.SetLayer(cursorLayer); }
public static InternalUiAnimationEditorCanvasItem GetItemAt(float x, float y) { InternalUiAnimationEditorCanvasItem output = null; for (int i = 0; i < Items.Count; i++) { if (Items[i].HitTest(x, y)) { output = Items[i]; } } return(output); }
/// <summary> /// Updates selection. /// </summary> /// <returns>True if selection is changed.</returns> public static bool Update() { if (_queueCanvasItemToEditChanged) { CanvasItemToEdit = _queueCanvasItemToEdit; _queueCanvasItemToEdit = null; _queueCanvasItemToEditChanged = false; } if (_queueCanvasItemToResizeChanged) { CanvasItemToResize = _queueCanvasItemToResize; _queueCanvasItemToResize = null; _queueCanvasItemToResizeChanged = false; } if (_queueCanvasItemToDragChanged) { CanvasItemToDrag = _queueCanvasItemToDrag; _queueCanvasItemToDrag = null; _queueCanvasItemToDragChanged = false; } if (Selection.activeGameObject != TargetGameObject) { TargetGameObject = Selection.activeGameObject; TargetAnimationClipIndex = 0; CanvasItemToEdit = null; CanvasItemToResize = null; CanvasItemToDrag = null; return(true); } return(false); }
public static void Update() { if (DragAndDropQueue != null) { for (int i = 0; i < DragAndDropQueue.Count; i++) { UiAnimationClipSegment tween = new UiAnimationClipSegment(); tween.GameObject = DragAndDropQueue[i] as GameObject; tween.Delay = GetTimeByMousePosition(InternalUiAnimationEditor.MousePosition.x); tween.Layer = GetLayerByMousePosition(InternalUiAnimationEditor.MousePosition.y); RectTransform rectTransform = tween.GameObject.GetComponent <RectTransform>(); if (rectTransform != null) { tween.PositionFrom = new Vector2(rectTransform.anchoredPosition.x, rectTransform.anchoredPosition.y); tween.PositionTo = new Vector2(rectTransform.anchoredPosition.x, rectTransform.anchoredPosition.y); tween.RotationFrom = rectTransform.localRotation.eulerAngles.z; tween.RotationTo = rectTransform.localRotation.eulerAngles.z; tween.ScaleFrom = new Vector2(rectTransform.localScale.x, rectTransform.localScale.y); tween.ScaleTo = new Vector2(rectTransform.localScale.x, rectTransform.localScale.y); } if (InternalUiAnimationEditorSelection.TargetAnimationClip != null) { InternalUiAnimationEditorSelection.TargetAnimationClip.Items.Add(tween); InternalUiAnimationEditorSelection.TargetAnimationClip.Items.Sort((a, b) => (a.Delay.CompareTo(b.Delay))); justAddedTween = tween; } } DragAndDropQueue = null; } if (InternalUiAnimationEditorSelection.CanvasItemToEdit == null) { Items = new List <InternalUiAnimationEditorCanvasItem>(); for (int i = 0; i < InternalUiAnimationEditorSelection.TargetAnimationClip.Items.Count; i++) { InternalUiAnimationEditorCanvasItem canvasItem = new InternalUiAnimationEditorCanvasItem ( InternalUiAnimationEditorSelection.TargetAnimationClip.Items[i] ); Items.Add(canvasItem); if (canvasItem.Target == justAddedTween) { InternalUiAnimationEditorSelection.SetCanvasItemToEdit(canvasItem); justAddedTween = null; } } } if (InternalUiAnimationEditorSelection.CanvasItemToEdit != null) { Items.Remove(InternalUiAnimationEditorSelection.CanvasItemToEdit); Items.Add(InternalUiAnimationEditorSelection.CanvasItemToEdit); } if (InternalUiAnimationEditorSelection.CanvasItemToDrag != null) { UpdateDrag(InternalUiAnimationEditorSelection.CanvasItemToDrag); } if (InternalUiAnimationEditorSelection.CanvasItemToResize != null) { UpdateResize(InternalUiAnimationEditorSelection.CanvasItemToResize); } for (int i = 0; i < Items.Count; i++) { Items[i].IsCollided = false; for (int j = 0; j < Items.Count; j++) { if (i == j) { continue; } if (Items[i].Target.GameObject != Items[j].Target.GameObject) { continue; } if (Items[i].Target.ItemType != Items[j].Target.ItemType) { continue; } if (Items[i].HitTest(Items[j].X, Items[i].Y) || Items[j].HitTest(Items[i].X, Items[j].Y)) { Items[i].IsCollided = true; break; } } } }
public static void OnEvent() { if (Event.current.type == EventType.DragUpdated) { if (InternalUiAnimationEditor.MousePosition.x > InternalUiAnimationEditorInspector.Width) { InternalUiAnimationEditorSelection.SetCanvasItemToEdit(null); } } // Drag and drop game objects if (Event.current.type == EventType.DragExited) { if (InternalUiAnimationEditor.MousePosition.x > InternalUiAnimationEditorInspector.Width && InternalUiAnimationEditor.MousePosition.y > InternalUiAnimationEditorTimeline.Height) { object[] objects = DragAndDrop.objectReferences; DragAndDropQueue = new List <GameObject>(); for (int i = 0; i < objects.Length; i++) { if (objects[i] is GameObject) { DragAndDropQueue.Add(objects[i] as GameObject); } } Event.current.Use(); } } if (Event.current.type == EventType.MouseDown) { InternalUiAnimationEditorCanvasItem item = GetItemAt(InternalUiAnimationEditor.MousePosition.x, InternalUiAnimationEditor.MousePosition.y); if (item != null) { if (InternalUiAnimationEditor.MousePosition.x > item.X + item.Width - 10 && InternalUiAnimationEditor.MousePosition.x < item.X + item.Width) { InternalUiAnimationEditorSelection.SetCanvasItemToEdit(item); InternalUiAnimationEditorSelection.SetCanvasItemToResize(item); } else { InternalUiAnimationEditorSelection.SetCanvasItemToEdit(item); InternalUiAnimationEditorSelection.SetCanvasItemToDrag(item); item.CachedX = item.X; item.CachedY = item.Y; } } } if (Event.current.type == EventType.MouseUp) { InternalUiAnimationEditorSelection.SetCanvasItemToDrag(null); InternalUiAnimationEditorSelection.SetCanvasItemToResize(null); if (InternalUiAnimationEditor.MousePosition.x > InternalUiAnimationEditorInspector.Width) { InternalUiAnimationEditorCanvasItem item = GetItemAt(InternalUiAnimationEditor.MousePosition.x, InternalUiAnimationEditor.MousePosition.y); if (item != null) { if (InternalUiAnimationEditorSelection.CanvasItemToEdit == null) { InternalUiAnimationEditorSelection.SetCanvasItemToEdit(item); } } else { InternalUiAnimationEditorSelection.SetCanvasItemToEdit(null); } } } }
private static void UpdateResize(InternalUiAnimationEditorCanvasItem item) { float cursorTime = GetTimeByMousePosition(InternalUiAnimationEditor.MousePosition.x); item.SetDuration(cursorTime - item.Delay + 0.1f); }
public static void SetCanvasItemToDrag(InternalUiAnimationEditorCanvasItem item) { _queueCanvasItemToDrag = item; _queueCanvasItemToDragChanged = true; }
public static void SetCanvasItemToResize(InternalUiAnimationEditorCanvasItem item) { _queueCanvasItemToResize = item; _queueCanvasItemToResizeChanged = true; }