UnityEngine.UI.GraphicRegistry.GetGraphicsForCanvas C# (CSharp) Method

GetGraphicsForCanvas() public static method

Return a list of Graphics that are registered on the Canvas.

public static GetGraphicsForCanvas ( Canvas canvas ) : IList
canvas Canvas Input canvas.
return IList
        public static IList<Graphic> GetGraphicsForCanvas(Canvas canvas)
        {
            IndexedSet<Graphic> set;
            if (instance.m_Graphics.TryGetValue(canvas, out set))
            {
                return set;
            }
            return s_EmptyList;
        }

Usage Example

コード例 #1
0
        private static void Raycast(Canvas canvas, Camera eventCamera, Vector2 pointerPosition, List <GameObject> results)
        {
            // Necessary for the event system
            var foundGraphics = GraphicRegistry.GetGraphicsForCanvas(canvas);

            s_SortedGraphics.Clear();

            for (int i = 0; i < foundGraphics.Count; ++i)
            {
                Graphic graphic = foundGraphics[i];

                // -1 means it hasn't been processed by the canvas, which means it isn't actually drawn
                if (graphic.depth == -1)
                {
                    continue;
                }
                if (!RectTransformUtility.PointInRectangle(pointerPosition, graphic.rectTransform, eventCamera))
                {
                    continue;
                }

                if (graphic.Raycast(pointerPosition, eventCamera))
                {
                    s_SortedGraphics.Add(graphic);
                }
            }

            s_SortedGraphics.Sort((g1, g2) => g2.depth.CompareTo(g1.depth));
            for (int i = 0; i < s_SortedGraphics.Count; ++i)
            {
                results.Add(s_SortedGraphics[i].gameObject);
            }
        }
All Usage Examples Of UnityEngine.UI.GraphicRegistry::GetGraphicsForCanvas