UnityEngine.EventSystems.BaseInputModule.FindFirstRaycast C# (CSharp) Method

FindFirstRaycast() protected static method

protected static FindFirstRaycast ( List candidates ) : RaycastResult
candidates List
return RaycastResult
        protected static RaycastResult FindFirstRaycast(List<RaycastResult> candidates)
        {
            for (int i = 0; i < candidates.Count; i++)
            {
                RaycastResult result = candidates[i];
                if (result.gameObject != null)
                {
                    return candidates[i];
                }
            }
            return new RaycastResult();
        }

Usage Example

        /// <summary>
        ///   <para>Return the current MouseState.</para>
        /// </summary>
        /// <param name="id"></param>
        protected virtual PointerInputModule.MouseState GetMousePointerEventData(int id)
        {
            PointerEventData data1;
            bool             pointerData = this.GetPointerData(-1, out data1, true);

            data1.Reset();
            if (pointerData)
            {
                data1.position = (Vector2)Input.mousePosition;
            }
            Vector2 mousePosition = (Vector2)Input.mousePosition;

            data1.delta       = mousePosition - data1.position;
            data1.position    = mousePosition;
            data1.scrollDelta = Input.mouseScrollDelta;
            data1.button      = PointerEventData.InputButton.Left;
            this.eventSystem.RaycastAll(data1, this.m_RaycastResultCache);
            RaycastResult firstRaycast = BaseInputModule.FindFirstRaycast(this.m_RaycastResultCache);

            data1.pointerCurrentRaycast = firstRaycast;
            this.m_RaycastResultCache.Clear();
            PointerEventData data2;

            this.GetPointerData(-2, out data2, true);
            this.CopyFromTo(data1, data2);
            data2.button = PointerEventData.InputButton.Right;
            PointerEventData data3;

            this.GetPointerData(-3, out data3, true);
            this.CopyFromTo(data1, data3);
            data3.button = PointerEventData.InputButton.Middle;
            this.m_MouseState.SetButtonState(PointerEventData.InputButton.Left, PointerInputModule.StateForMouseButton(0), data1);
            this.m_MouseState.SetButtonState(PointerEventData.InputButton.Right, PointerInputModule.StateForMouseButton(1), data2);
            this.m_MouseState.SetButtonState(PointerEventData.InputButton.Middle, PointerInputModule.StateForMouseButton(2), data3);
            return(this.m_MouseState);
        }
All Usage Examples Of UnityEngine.EventSystems.BaseInputModule::FindFirstRaycast