public override void Raycast(PointerEventData eventData, List <RaycastResult> resultAppendList) { var count = resultAppendList.Count; base.Raycast(eventData, resultAppendList); if (count != resultAppendList.Count && !(eventData.IsScrolling() || eventData.dragging)) { return; } var result = new RaycastResult { gameObject = _fallback, module = (BaseRaycaster)this, distance = 0, worldPosition = _fallback.transform.position, worldNormal = _fallback.transform.up, screenPosition = eventData.position, index = (float)resultAppendList.Count, sortingLayer = 0, sortingOrder = 0 }; resultAppendList.Add(result); }
private static bool UseMouse(bool pressed, bool released, PointerEventData pointerData) { if (pressed || released || pointerData.IsPointerMoving() || pointerData.IsScrolling()) { return(true); } return(false); }
public void OnScroll(PointerEventData eventData) { //Debug.Log(eventData.scrollDelta + ", " + eventData.IsScrolling()); if (eventData.scrollDelta.y < 0 && eventData.IsScrolling()) { if ((windowContents as IPagedWindowContents).GetPageCount() > 1) { NextPage(); } } else if (eventData.scrollDelta.y > 0 && eventData.IsScrolling()) { if ((windowContents as IPagedWindowContents).GetPageCount() > 1) { PreviousPage(); } } }
public void OnPointerEnter(PointerEventData eventData) { if (eventData.dragging || eventData.IsScrolling()) { return; } IsFocused = true; }
public void OnScroll(PointerEventData eventData) { gRayCaster.enabled = !eventData.IsScrolling(); if (coroutine != null) { StopCoroutine(coroutine); } coroutine = StartCoroutine(EnableRaycasterCoroutine(0.2f)); }
static int IsScrolling(IntPtr L) { LuaScriptMgr.CheckArgsCount(L, 1); PointerEventData obj = LuaScriptMgr.GetNetObject <PointerEventData>(L, 1); bool o = obj.IsScrolling(); LuaScriptMgr.Push(L, o); return(1); }
private void CallLuaFunction(EventTriggerType t, PointerEventData eventData) { //if (_luaFunction == null) // return; int type = 1 << (int)t; if ((type & _eventTypes) == 0) { return; } if (_luaEventData == null) { _luaEventData = new LuaEventData(); } _luaEventData.button = (int)eventData.button; _luaEventData.clickCount = eventData.clickCount; _luaEventData.clickTime = eventData.clickTime; _luaEventData.delta_x = eventData.delta.x; _luaEventData.delta_y = eventData.delta.y; _luaEventData.dragging = eventData.dragging; _luaEventData.eligibleForClick = eventData.eligibleForClick; _luaEventData.pointerId = eventData.pointerId; _luaEventData.position_x = eventData.position.x; _luaEventData.position_y = eventData.position.y; _luaEventData.pressPosition_x = eventData.pressPosition.x; _luaEventData.pressPosition_y = eventData.pressPosition.y; _luaEventData.scrollDelta_x = eventData.scrollDelta.x; _luaEventData.scrollDelta_y = eventData.scrollDelta.y; _luaEventData.SetIsPointMoving(eventData.IsPointerMoving()); _luaEventData.SetIsScrolling(eventData.IsScrolling()); _luaEventData.camera = eventData.enterEventCamera; //_luaFunction.Call(type, _luaEventData); if (_luaEventData.button >= 0 && _luaEventData.button <= 2) { eventData.button = (PointerEventData.InputButton)_luaEventData.button; } eventData.clickCount = _luaEventData.clickCount; eventData.clickTime = _luaEventData.clickTime; eventData.delta.Set(_luaEventData.delta_x, _luaEventData.delta_y); eventData.dragging = _luaEventData.dragging; eventData.eligibleForClick = _luaEventData.eligibleForClick; eventData.pointerId = _luaEventData.pointerId; eventData.position.Set(_luaEventData.position_x, _luaEventData.position_y); eventData.pressPosition.Set(_luaEventData.pressPosition_x, _luaEventData.pressPosition_y); eventData.scrollDelta.Set(_luaEventData.scrollDelta_x, _luaEventData.scrollDelta_y); }
bool UseMouse(bool pressed, bool released, PointerEventData pointerData) { if (currentInputSource == InputSource.Mouse) { return(true); } if (pressed || released || pointerData.IsPointerMoving() || pointerData.IsScrolling()) { currentInputSource = InputSource.Mouse; base.eventSystem.SetSelectedGameObject(null, pointerData); } return(currentInputSource == InputSource.Mouse); }
public void OnPointerUp(PointerEventData eventData) { if (eventData.dragging || eventData.IsScrolling() || !AnchorSetManager.Instance.IsEnabled) { TapStarted = false; return; } if (IsFocused && TapStarted) { OnItemSelected(); } TapStarted = false; }
public virtual void OnScroll(PointerEventData data) { if (!IsActive()) { return; } EnsureLayoutHasRebuilt(); UpdateBounds(); Vector2 delta = data.scrollDelta; // Down is positive for scroll events, while in UI system up is positive. delta.y *= -1; if (vertical && !horizontal) { if (Mathf.Abs(delta.x) > Mathf.Abs(delta.y)) { delta.y = delta.x; } delta.x = 0; } if (horizontal && !vertical) { if (Mathf.Abs(delta.y) > Mathf.Abs(delta.x)) { delta.x = delta.y; } delta.y = 0; } if (data.IsScrolling()) { m_Scrolling = true; } Vector2 position = m_Content.anchoredPosition; position += delta * m_ScrollSensitivity; if (m_MovementType == MovementType.Clamped) { position += CalculateOffset(position - m_Content.anchoredPosition); } SetContentAnchoredPosition(position); UpdateBounds(); }
public static int IsScrolling(IntPtr l) { int result; try { PointerEventData pointerEventData = (PointerEventData)LuaObject.checkSelf(l); bool b = pointerEventData.IsScrolling(); LuaObject.pushValue(l, true); LuaObject.pushValue(l, b); result = 2; } catch (Exception e) { result = LuaObject.error(l, e); } return(result); }
public override void OnEnter() { if (lastPointerEventData == null) { Finish(); return; } if (!clickCount.IsNone) { clickCount.Value = lastPointerEventData.clickCount; } if (!clickTime.IsNone) { clickTime.Value = lastPointerEventData.clickTime; } if (!delta.IsNone) { delta.Value = lastPointerEventData.delta; } if (!dragging.IsNone) { dragging.Value = lastPointerEventData.dragging; } if (!inputButton.IsNone) { inputButton.Value = lastPointerEventData.button; } if (!eligibleForClick.IsNone) { eligibleForClick.Value = lastPointerEventData.eligibleForClick; } if (!enterEventCamera.IsNone) { enterEventCamera.Value = lastPointerEventData.enterEventCamera.gameObject; } if (!isPointerMoving.IsNone) { isPointerMoving.Value = lastPointerEventData.IsPointerMoving(); } if (!isScrolling.IsNone) { isScrolling.Value = lastPointerEventData.IsScrolling(); } if (!lastPress.IsNone) { lastPress.Value = lastPointerEventData.lastPress; } if (!pointerDrag.IsNone) { pointerDrag.Value = lastPointerEventData.pointerDrag; } if (!pointerEnter.IsNone) { pointerEnter.Value = lastPointerEventData.pointerEnter; } if (!pointerId.IsNone) { pointerId.Value = lastPointerEventData.pointerId; } if (!pointerPress.IsNone) { pointerPress.Value = lastPointerEventData.pointerPress; } if (!position.IsNone) { position.Value = lastPointerEventData.position; } if (!pressEventCamera.IsNone) { pressEventCamera.Value = lastPointerEventData.pressEventCamera.gameObject; } if (!pressPosition.IsNone) { pressPosition.Value = lastPointerEventData.pressPosition; } if (!rawPointerPress.IsNone) { rawPointerPress.Value = lastPointerEventData.rawPointerPress; } if (!scrollDelta.IsNone) { scrollDelta.Value = lastPointerEventData.scrollDelta; } if (!used.IsNone) { used.Value = lastPointerEventData.used; } if (!useDragThreshold.IsNone) { useDragThreshold.Value = lastPointerEventData.useDragThreshold; } if (!worldNormal.IsNone) { worldNormal.Value = lastPointerEventData.pointerCurrentRaycast.worldNormal; } if (!worldPosition.IsNone) { worldPosition.Value = lastPointerEventData.pointerCurrentRaycast.worldPosition; } Finish(); }
static bool UseMouse(bool pressed, bool released, PointerEventData pointerData) { return(pressed || released || pointerData.IsPointerMoving() || pointerData.IsScrolling()); }
public void OnDrag(PointerEventData data) { SetDraggedPosition(data); data.IsScrolling(); }
/// <summary> /// 更新UIEventData /// </summary> /// <param name="eventData"></param> /// <param name="resultAppendList"></param> public void UpdateUIEventData(GameBoxGraphicRaycaster t_Raycaster, PointerEventData t_EventData, List <RaycastResult> t_ResultAppendList) { //Debug.Log(t_EventData.ToString()); #region 更新事件参数 UIEventData.pointerEnter = t_EventData.pointerEnter; UIEventData.pointerPress = t_EventData.pointerPress; UIEventData.rawPointerPress = t_EventData.rawPointerPress; UIEventData.pointerDrag = t_EventData.pointerDrag; UIEventData.hovered = t_EventData.hovered; UIEventData.isPointerMoving = t_EventData.IsPointerMoving(); UIEventData.isScrolling = t_EventData.IsScrolling(); UIEventData.clickCount = t_EventData.clickCount; UIEventData.lastPress = t_EventData.lastPress; UIEventData.selectedObject = t_EventData.selectedObject; UIEventData.eligibleForClick = t_EventData.eligibleForClick; UIEventData.dragging = t_EventData.dragging; UIEventData.useDragThreshold = t_EventData.useDragThreshold; UIEventData.enterEventCamera = t_EventData.enterEventCamera; UIEventData.pressEventCamera = t_EventData.pressEventCamera; UIEventData.position = t_EventData.position; UIEventData.pressPosition = t_EventData.pressPosition; UIEventData.clickTime = t_EventData.clickTime; #endregion #region 悬停处理 if (null == t_EventData.pointerPress && null != t_EventData.pointerEnter && !hoverOnceControl) //悬停进入处理 { //Debug.Log("悬停进入"); if (null != OnEnterEventHandler) { OnEnterEventHandler(t_EventData.pointerEnter, UIEventData); } UIEventData.lastEnter = t_EventData.pointerEnter; hoverOnceControl = true; } if (null == t_EventData.pointerPress && null != t_EventData.pointerEnter) //悬停停留处理 { //Debug.Log("悬停停留"); if (null != OnHoverEventHandler) { OnHoverEventHandler(t_EventData.pointerEnter, UIEventData); } } if (null == t_EventData.pointerPress && null == t_EventData.pointerEnter && hoverOnceControl) //悬停移出处理 { //Debug.Log("悬停移出"); if (null != OnExitEventHandler) { OnExitEventHandler(UIEventData.lastEnter, UIEventData); } hoverOnceControl = false; } #endregion #region 键处理 #if UNITY_STANDALONE_WIN || UNITY_EDITOR if (null != t_EventData.pointerPress && !clickOnceControl) //按下和点击处理 { //Debug.Log("按下"); if (null != OnDownEventHandler) { OnDownEventHandler(t_EventData.pointerPress, UIEventData); } //Debug.Log("点击"); if (null != OnClickEventHandler) { OnClickEventHandler(t_EventData.pointerPress, UIEventData); } clickOnceControl = true; } if (null != t_EventData.pointerPress) //按住处理 { //Debug.Log("按住"); if (null != OnPressEventHandler) { OnPressEventHandler(t_EventData.pointerPress, UIEventData); } } if (null != t_EventData.lastPress && clickOnceControl) //抬起处理 { //Debug.Log("抬起"); if (null != OnUpEventHandler) { OnUpEventHandler(t_EventData.lastPress, UIEventData); } clickOnceControl = false; } #endif #if (UNITY_ANDROID || UNITY_IPHONE) && !UNITY_EDITOR if (0 < Input.touchCount && null != t_EventData.pointerPress && !clickOnceControl) //屏幕有触摸点 && 按下和点击处理 { //Debug.Log("按下"); if (null != OnDownEventHandler) { OnDownEventHandler(t_EventData.pointerPress, UIEventData); } //Debug.Log("点击"); if (null != OnClickEventHandler) { OnClickEventHandler(t_EventData.pointerPress, UIEventData); } m_OnPressTouchCount = Input.touchCount; //按下的那一刻的触屏数目 clickOnceControl = true; info1 = "按下" + Time.deltaTime; } //按下的时候 可以 其他手指 也可以触摸屏幕 if (m_OnPressTouchCount <= Input.touchCount && null != t_EventData.pointerPress) //按住处理 { //Debug.Log("按住"); if (null != OnPressEventHandler) { OnPressEventHandler(t_EventData.pointerPress, UIEventData); } info2 = "按住" + Time.deltaTime + " " + (Time.realtimeSinceStartup - m_PressRealTime); m_PressRealTime = Time.realtimeSinceStartup; } if (0.01f < (Time.realtimeSinceStartup - m_PressRealTime) && clickOnceControl) //抬起处理 { //Debug.Log("抬起"); clickOnceControl = false; info3 = "抬起" + Time.deltaTime; if (null != OnUpEventHandler) { OnUpEventHandler(UIEventData.lastPress, UIEventData); } UIEventData.lastPress = t_EventData.pointerPress; //保存上一次的按下 刷新 m_OnPressTouchCount = 0; } info4 = t_EventData.ToString() + " \n" + Time.deltaTime.ToString(); #endif #endregion #region 滑动处理 if (null != t_EventData.pointerDrag && !dragOnceControl) //开始滑动处理 { //Debug.Log("开始滑动处理"); if (null != OnBeginDragEventHandler) { OnBeginDragEventHandler(t_EventData.pointerDrag, UIEventData); } UIEventData.lastDrag = t_EventData.pointerDrag; dragOnceControl = true; } if (null != t_EventData.pointerDrag) //滑动中处理 { //Debug.Log("滑动中处理"); if (null != OnDragEventHandler) { OnDragEventHandler(t_EventData.pointerDrag, UIEventData); } } if (null == t_EventData.pointerDrag && dragOnceControl) //结束滑动处理 { //Debug.Log("结束滑动处理"); if (null != OnEndDragEventHandler) { OnEndDragEventHandler(UIEventData.lastDrag, UIEventData); } dragOnceControl = false; } #endregion }