public static IsDescendantOrSelf ( |
||
father | The transform to compare against. | |
child | The starting transform to search up the hierarchy. | |
return | bool |
public static void GetRectMasksForClip(RectMask2D clipper, List <RectMask2D> masks) { masks.Clear(); List <Canvas> list = ListPool <Canvas> .Get(); List <RectMask2D> list2 = ListPool <RectMask2D> .Get(); clipper.transform.GetComponentsInParent <RectMask2D>(false, list2); if (list2.Count > 0) { clipper.transform.GetComponentsInParent <Canvas>(false, list); for (int i = list2.Count - 1; i >= 0; i--) { if (list2[i].IsActive()) { bool flag = true; for (int j = list.Count - 1; j >= 0; j--) { if (!MaskUtilities.IsDescendantOrSelf(list[j].transform, list2[i].transform) && list[j].overrideSorting) { flag = false; break; } } if (flag) { masks.Add(list2[i]); } } } } ListPool <RectMask2D> .Release(list2); ListPool <Canvas> .Release(list); }
public static RectMask2D GetRectMaskForClippable(IClippable clippable) { List <RectMask2D> list = ListPool <RectMask2D> .Get(); List <Canvas> list2 = ListPool <Canvas> .Get(); RectMask2D rectMask2D = null; clippable.rectTransform.GetComponentsInParent <RectMask2D>(false, list); RectMask2D result; if (list.Count > 0) { for (int i = 0; i < list.Count; i++) { rectMask2D = list[i]; if (rectMask2D.gameObject == clippable.gameObject) { rectMask2D = null; } else { if (rectMask2D.isActiveAndEnabled) { clippable.rectTransform.GetComponentsInParent <Canvas>(false, list2); for (int j = list2.Count - 1; j >= 0; j--) { if (!MaskUtilities.IsDescendantOrSelf(list2[j].transform, rectMask2D.transform) && list2[j].overrideSorting) { rectMask2D = null; break; } } result = rectMask2D; return(result); } rectMask2D = null; } } } ListPool <RectMask2D> .Release(list); ListPool <Canvas> .Release(list2); result = rectMask2D; return(result); }