コード例 #1
0
 protected override HandleEventData GetHandleEventData(RayEventData eventData)
 {
     return(new SphereHandleEventData(eventData.rayOrigin, U.UI.IsDirectEvent(eventData))
     {
         raycastHitDistance = eventData.pointerCurrentRaycast.distance
     });
 }
コード例 #2
0
 public void OnRayExit(RayEventData eventData)
 {
     if (m_HoveringRayOrigin == eventData.rayOrigin)
     {
         m_HoveringRayOrigin = null;
     }
 }
コード例 #3
0
 public void OnRayExit(RayEventData eventData)
 {
     if (OnHoverExit != null)
     {
         OnHoverExit();
     }
 }
コード例 #4
0
ファイル: BaseHandle.cs プロジェクト: chunlei/EditorVR
 public void OnEndDrag(RayEventData eventData)
 {
     if (m_DragSources.Remove(eventData.rayOrigin))
     {
         OnHandleDragEnded(GetHandleEventData(eventData));
     }
 }
コード例 #5
0
 public void OnRayEnter(RayEventData eventData)
 {
     if (OnHoverEnter != null)
     {
         OnHoverEnter();
     }
 }
コード例 #6
0
ファイル: WorkspaceButton.cs プロジェクト: timkulp/EditorVR
 public void OnRayExit(RayEventData eventData)
 {
     if (autoHighlight)
     {
         highlighted = false;
     }
 }
コード例 #7
0
 public void OnRayExit(RayEventData eventData)
 {
     if (hovered != null)
     {
         hovered(eventData.rayOrigin, null, null);
     }
 }
コード例 #8
0
 public void OnRayEnter(RayEventData eventData)
 {
     if (hovered != null)
     {
         hovered(eventData.rayOrigin, toolType, m_ButtonDescription.text);
     }
 }
コード例 #9
0
ファイル: WorkspaceButton.cs プロジェクト: timkulp/EditorVR
 public void OnRayEnter(RayEventData eventData)
 {
     if (autoHighlight)
     {
         highlighted = true;
     }
 }
コード例 #10
0
 public void OnRayExit(RayEventData eventData)
 {
     if (node == eventData.node)
     {
         node = null;
     }
 }
コード例 #11
0
ファイル: BaseHandle.cs プロジェクト: PushyPixels/EditorXR
        public void OnRayHover(RayEventData eventData)
        {
            var handleEventData = GetHandleEventData(eventData);

            // Direct selection has special handling for enter/exit since those events may not have been called
            // because the pointer wasn't close enough to the handle
            if (selectionFlags == SelectionFlags.Direct)
            {
                var rayOrigin = eventData.rayOrigin;
                if (!handleEventData.direct && m_HoverSources.Remove(rayOrigin))
                {
                    OnHandleHoverEnded(handleEventData);
                    return;
                }

                if (handleEventData.direct && !m_HoverSources.Contains(rayOrigin))
                {
                    m_HoverSources.Add(rayOrigin);
                    OnHandleHoverStarted(handleEventData);
                }
            }

            if (m_HoverSources.Count > 0)
            {
                OnHandleHovering(GetHandleEventData(eventData));
            }
        }
コード例 #12
0
        public void OnRayEnter(RayEventData eventData)
        {
            if (m_CanvasGroup && !m_CanvasGroup.interactable)
            {
                return;
            }

            if (button.interactable)
            {
                var descriptionText = string.Empty;
#if INCLUDE_TEXT_MESH_PRO
                // We can't use ?? because it breaks on destroyed references
                if (m_Description)
                {
                    descriptionText = m_Description.text;
                }
#endif

                if (hovered != null)
                {
                    hovered(eventData.rayOrigin, toolType, descriptionText);
                }

                if (hoverStarted != null)
                {
                    hoverStarted.Invoke();
                }
            }
        }
コード例 #13
0
ファイル: BaseHandle.cs プロジェクト: PushyPixels/EditorXR
 public void OnRayExit(RayEventData eventData)
 {
     if (m_HoverSources.Remove(eventData.rayOrigin))
     {
         OnHandleHoverEnded(GetHandleEventData(eventData));
     }
 }
コード例 #14
0
 protected override HandleEventData GetHandleEventData(RayEventData eventData)
 {
     return(new RadialHandleEventData(eventData.rayOrigin, UIUtils.IsDirectEvent(eventData))
     {
         raycastHitWorldPosition = eventData.pointerCurrentRaycast.worldPosition
     });
 }
コード例 #15
0
ファイル: BaseHandle.cs プロジェクト: PushyPixels/EditorXR
 public void OnPointerUp(RayEventData eventData)
 {
     if (m_DragSources.Remove(eventData.rayOrigin))
     {
         OnHandlePointerUp(GetHandleEventData(eventData));
     }
 }
コード例 #16
0
ファイル: BaseHandle.cs プロジェクト: PushyPixels/EditorXR
 public void OnEndDrag(RayEventData eventData)
 {
     if (m_DragSources.Count > 0)
     {
         OnHandleEndDrag(GetHandleEventData(eventData));
     }
 }
コード例 #17
0
ファイル: BaseHandle.cs プロジェクト: PushyPixels/EditorXR
        public void OnPointerDown(RayEventData eventData)
        {
            if (!UIUtils.IsValidEvent(eventData, selectionFlags))
            {
                return;
            }

            var rayOrigin = eventData.rayOrigin;

            m_DragSources.Add(rayOrigin);
            startDragPositions[rayOrigin] = eventData.pointerCurrentRaycast.worldPosition;

            var handleEventData = GetHandleEventData(eventData);

            //Double-click logic
            DateTime lastClickTime;

            if (!m_LastClickTimes.TryGetValue(rayOrigin, out lastClickTime))
            {
                m_LastClickTimes[rayOrigin] = new DateTime();
            }

            var now = DateTime.UtcNow;
            var timeSinceLastClick = (float)(now - lastClickTime).TotalSeconds;

            m_LastClickTimes[rayOrigin] = now;
            if (UIUtils.IsDoubleClick(timeSinceLastClick))
            {
                OnDoubleClick(handleEventData);
            }

            OnHandlePointerDown(handleEventData);
        }
コード例 #18
0
ファイル: PlaneHandle.cs プロジェクト: LeksayProjects/VRAR
        protected override HandleEventData GetHandleEventData(RayEventData eventData)
        {
            k_LinearHandleEventData.rayOrigin = eventData.rayOrigin;
            k_LinearHandleEventData.direct    = UIUtils.IsDirectEvent(eventData);
            k_LinearHandleEventData.raycastHitWorldPosition = eventData.pointerCurrentRaycast.worldPosition;

            return(k_LinearHandleEventData);
        }
コード例 #19
0
ファイル: SphereHandle.cs プロジェクト: xxpniu/EditorXR
        protected override HandleEventData GetHandleEventData(RayEventData eventData)
        {
            k_SphereHandleEventData.rayOrigin          = eventData.rayOrigin;
            k_SphereHandleEventData.direct             = UIUtils.IsDirectEvent(eventData);
            k_SphereHandleEventData.raycastHitDistance = eventData.pointerCurrentRaycast.distance;

            return(k_SphereHandleEventData);
        }
コード例 #20
0
ファイル: BaseHandle.cs プロジェクト: PushyPixels/EditorXR
 protected virtual HandleEventData GetHandleEventData(RayEventData eventData)
 {
     k_HandleEventData.rayOrigin = eventData.rayOrigin;
     k_HandleEventData.camera    = eventData.camera;
     k_HandleEventData.position  = eventData.position;
     k_HandleEventData.direct    = UIUtils.IsDirectEvent(eventData);
     return(k_HandleEventData);
 }
コード例 #21
0
        public void OnRayHover(RayEventData eventData)
        {
            RaycastResult raycastResult = eventData.pointerCurrentRaycast;

            if (raycastResult.gameObject.CompareTag(LINK_HANDLE_TAG))
            {
            }
        }
コード例 #22
0
        public void OnRayEnter(RayEventData eventData)
        {
#if INCLUDE_TEXT_MESH_PRO
            if (hovered != null)
            {
                hovered(eventData.rayOrigin, toolType, m_ButtonDescription.text);
            }
#endif
        }
コード例 #23
0
ファイル: WorkspaceButton.cs プロジェクト: xxpniu/EditorXR
        public void OnRayExit(RayEventData eventData)
        {
            m_InteractingRayOrigin = null;

            if (autoHighlight)
            {
                highlighted = false;
            }
        }
コード例 #24
0
        public void OnDrag(RayEventData eventData)
        {
            if (!UIUtils.IsValidEvent(eventData, selectionFlags) || !MayDrag())
            {
                return;
            }

            SliderDrag(eventData.rayOrigin);
        }
コード例 #25
0
        public void OnEndDrag(RayEventData eventData)
        {
            if (!UIUtils.IsValidEvent(eventData, selectionFlags) || !MayDrag())
            {
                return;
            }

            EndDrag();
        }
コード例 #26
0
        public void OnBeginDrag(RayEventData eventData)
        {
            if (!UIUtils.IsValidEvent(eventData, selectionFlags) && MayDrag())
            {
                return;
            }

            m_StartDragPosition = GetLocalPointerPosition(eventData.rayOrigin);
        }
コード例 #27
0
        public override void Raycast(PointerEventData data, List <RaycastResult> results)
        {
            RayEventData rayData = data as RayEventData;

            if (rayData != null)
            {
                Raycast(rayData, results, rayData.EventRay, true);
            }
        }
コード例 #28
0
        public void OnRayEnter(RayEventData eventData)
        {
            m_InteractingRayOrigin = eventData.rayOrigin;

            if (hovered != null)
            {
                hovered(eventData.rayOrigin);
            }
        }
コード例 #29
0
ファイル: BaseHandle.cs プロジェクト: PushyPixels/EditorXR
        public void OnRayEnter(RayEventData eventData)
        {
            if (!UIUtils.IsValidEvent(eventData, selectionFlags))
            {
                return;
            }

            m_HoverSources.Add(eventData.rayOrigin);
            OnHandleHoverStarted(GetHandleEventData(eventData));
        }
コード例 #30
0
        public void OnRayExit(RayEventData eventData)
        {
            if (m_CanvasGroup && !m_CanvasGroup.interactable)
            {
                return;
            }

            if (m_Toggle.interactable && hovered != null)
            {
                hovered(eventData.rayOrigin);
            }
        }