UnityEngine.UI.MaskUtilities.GetRectMaskForClippable C# (CSharp) Method

GetRectMaskForClippable() public static method

Find the correct RectMask2D for a given IClippable.

public static GetRectMaskForClippable ( IClippable clippable ) : RectMask2D
clippable IClippable
return RectMask2D
        public static RectMask2D GetRectMaskForClippable(IClippable clippable)
        {
            List<RectMask2D> results = ListPool<RectMask2D>.Get();
            List<Canvas> list2 = ListPool<Canvas>.Get();
            RectMask2D maskd = null;
            clippable.rectTransform.GetComponentsInParent<RectMask2D>(false, results);
            if (results.Count > 0)
            {
                for (int i = 0; i < results.Count; i++)
                {
                    maskd = results[i];
                    if (maskd.gameObject == clippable.gameObject)
                    {
                        maskd = null;
                    }
                    else if (!maskd.isActiveAndEnabled)
                    {
                        maskd = null;
                    }
                    else
                    {
                        clippable.rectTransform.GetComponentsInParent<Canvas>(false, list2);
                        for (int j = list2.Count - 1; j >= 0; j--)
                        {
                            if (!IsDescendantOrSelf(list2[j].transform, maskd.transform) && list2[j].overrideSorting)
                            {
                                return null;
                            }
                        }
                        return maskd;
                    }
                }
            }
            ListPool<RectMask2D>.Release(results);
            ListPool<Canvas>.Release(list2);
            return maskd;
        }

Usage Example

Esempio n. 1
0
        private void UpdateClipParent()
        {
            RectMask2D rectMask2D = (!maskable || !IsActive()) ? null : MaskUtilities.GetRectMaskForClippable(this);

            if (rectMask2D != m_ParentMask && m_ParentMask != null)
            {
                m_ParentMask.RemoveClippable(this);
            }
            if (rectMask2D != null)
            {
                rectMask2D.AddClippable(this);
            }
            m_ParentMask = rectMask2D;
        }
All Usage Examples Of UnityEngine.UI.MaskUtilities::GetRectMaskForClippable