public JuniperPointerEventData GetJuniperPointerData(int pointerDataID) { if (!m_PointerData.ContainsKey(pointerDataID)) { m_PointerData[pointerDataID] = new JuniperPointerEventData(eventSystem); } var data = m_PointerData[pointerDataID]; if (!(data is JuniperPointerEventData)) { var clone = new JuniperPointerEventData(eventSystem) { button = data.button, clickCount = data.clickCount, clickTime = data.clickTime, delta = data.delta, dragging = data.dragging, eligibleForClick = data.eligibleForClick, pointerCurrentRaycast = data.pointerCurrentRaycast, pointerDrag = data.pointerDrag, pointerEnter = data.pointerEnter, pointerId = data.pointerId, pointerPress = data.pointerPress, pointerPressRaycast = data.pointerPressRaycast, position = data.position, pressPosition = data.pressPosition, rawPointerPress = data.rawPointerPress, scrollDelta = data.scrollDelta, selectedObject = data.selectedObject, useDragThreshold = data.useDragThreshold }; if (data.hovered != null) { if (clone.hovered == null) { clone.hovered = new List <GameObject>(); } clone.hovered.AddRange(data.hovered); } data = clone; } return((JuniperPointerEventData)data); }
public JuniperPointerEventData Clone(int pointerDataID, JuniperPointerEventData original) { var clone = GetJuniperPointerData(pointerDataID); clone.delta = original.delta; clone.position = original.position; clone.scrollDelta = original.scrollDelta; clone.pointerEnter = original.pointerEnter; clone.useDragThreshold = original.useDragThreshold; clone.pointerCurrentRaycast = original.pointerCurrentRaycast; if (original.clickCount == -1) { clone.eligibleForClick = false; clone.clickCount = 0; } return(clone); }
public void ClickButtons(IEnumerable <IPointerClickHandler> buttons) { var pointerEvent = new JuniperPointerEventData(eventSystem) { button = PointerEventData.InputButton.Left, keyCode = KeyCode.Mouse0, eligibleForClick = true, clickCount = 1, clickTime = Time.unscaledTime, }; foreach (var button in buttons) { if (button != null) { button.OnPointerClick(pointerEvent); } } }