public static RectMask2D GetRectMaskForClippable(IClippable transform) { Transform parent = transform.rectTransform.parent; List<Component> results = ListPool<Component>.Get(); while (parent != null) { parent.GetComponents(typeof(RectMask2D), results); for (int i = 0; i < results.Count; i++) { if ((results[i] != null) && ((RectMask2D) results[i]).IsActive()) { RectMask2D maskd = (RectMask2D) results[i]; ListPool<Component>.Release(results); return maskd; } } if (parent.GetComponent<Canvas>() != null) { break; } parent = parent.parent; } ListPool<Component>.Release(results); return null; }
/// <summary> /// /// <para> /// Find the correct RectMask2D for a given IClippable. /// </para> /// /// </summary> /// <param name="transform">Clippable to search from.</param> public static RectMask2D GetRectMaskForClippable(IClippable transform) { Transform parent = transform.rectTransform.parent; List <Component> list = ListPool <Component> .Get(); for (; (Object)parent != (Object)null; parent = parent.parent) { parent.GetComponents(typeof(RectMask2D), list); for (int index = 0; index < list.Count; ++index) { if ((Object)list[index] != (Object)null && ((UIBehaviour)list[index]).IsActive()) { RectMask2D rectMask2D = (RectMask2D)list[index]; ListPool <Component> .Release(list); return(rectMask2D); } } if ((bool)((Object)parent.GetComponent <Canvas>())) { break; } } ListPool <Component> .Release(list); return((RectMask2D)null); }
public static RectMask2D GetRectMaskForClippable(IClippable transform) { var t = transform.rectTransform.parent; var components = ListPool <Component> .Get(); while (t != null) { t.GetComponents(typeof(RectMask2D), components); for (var i = 0; i < components.Count; ++i) { if (components[i] != null && ((RectMask2D)components[i]).IsActive()) { var result = (RectMask2D)components[i]; ListPool <Component> .Release(components); return(result); } } var canvas = t.GetComponent <Canvas>(); if (canvas) { break; } t = t.parent; } ListPool <Component> .Release(components); return(null); }
public static RectMask2D GetRectMaskForClippable(IClippable transform) { Transform parent = transform.rectTransform.parent; List <Component> list = ListPool <Component> .Get(); while (parent != null) { parent.GetComponents(typeof(RectMask2D), list); for (int i = 0; i < list.Count; i++) { if (list[i] != null && ((RectMask2D)list[i]).IsActive()) { RectMask2D result = (RectMask2D)list[i]; ListPool <Component> .Release(list); return(result); } } Canvas component = parent.GetComponent <Canvas>(); if ((bool)component) { break; } parent = parent.parent; } ListPool <Component> .Release(list); return(null); }
public static RectMask2D GetRectMaskForClippable(IClippable transform) { Transform parent = transform.rectTransform.parent; List <Component> results = ListPool <Component> .Get(); while (parent != null) { parent.GetComponents(typeof(RectMask2D), results); for (int i = 0; i < results.Count; i++) { if ((results[i] != null) && ((RectMask2D)results[i]).IsActive()) { RectMask2D maskd = (RectMask2D)results[i]; ListPool <Component> .Release(results); return(maskd); } } if (parent.GetComponent <Canvas>() != null) { break; } parent = parent.parent; } ListPool <Component> .Release(results); return(null); }
static RectMask2D GetRectMaskForClippable(IClippable clippable) { List <RectMask2D> rectMaskComponents = ListPool <RectMask2D> .Get(); RectMask2D componentToReturn = null; clippable.rectTransform.GetComponentsInParent(false, rectMaskComponents); if (rectMaskComponents.Count > 0) { for (int rmi = 0; rmi < rectMaskComponents.Count; rmi++) { componentToReturn = rectMaskComponents[rmi]; if (componentToReturn.gameObject == clippable.gameObject) { componentToReturn = null; continue; } if (!componentToReturn.isActiveAndEnabled) { componentToReturn = null; continue; } break; } } ListPool <RectMask2D> .Release(rectMaskComponents); return(componentToReturn); }
public void RemoveClippable(IClippable clippable) { if (clippable != null) { clippable.SetClipRect(new Rect(), false); this.m_ClipTargets.Remove(clippable); } }
public void RemoveClippable(IClippable clippable) { if (clippable != null) { clippable.SetClipRect(default(Rect), validRect: false); m_ClipTargets.Remove(clippable); } }
static int RemoveClippable(IntPtr L) { LuaScriptMgr.CheckArgsCount(L, 2); RectMask2D obj = (RectMask2D)LuaScriptMgr.GetUnityObjectSelf(L, 1, "RectMask2D"); IClippable arg0 = (IClippable)LuaScriptMgr.GetNetObject(L, 2, typeof(IClippable)); obj.RemoveClippable(arg0); return(0); }
public AutoClip(IClippable parent) { this.parent = parent; children = new List<UIElement>(); geometry = new RectangleGeometry(); geometry.Rect = new Rect(0, 0, parent.Width, parent.Height); parent.Clip = geometry; parent.OnPropertyChanged += new EventHandler<DependencyArgs>(OnPropertyChanged); }
public void RemoveClippable(IClippable clippable) { if (clippable != null) { m_ShouldRecalculateClipRects = true; clippable.SetClipRect(default(Rect), validRect: false); m_ClipTargets.Remove(clippable); m_ForceClip = true; } }
/// <summary> /// <para>Remove an IClippable from being tracked by the mask.</para> /// </summary> /// <param name="clippable"></param> public void RemoveClippable(IClippable clippable) { if (clippable != null) { this.m_ShouldRecalculateClipRects = true; clippable.SetClipRect(new Rect(), false); this.m_ClipTargets.Remove(clippable); this.m_ForceClip = true; } }
public void RemoveClippable(IClippable clippable) { if (clippable == null) { return; } clippable.SetClipRect(new Rect(), false); m_ClipTargets.Remove(clippable); }
/// <summary> /// <para>Add a [IClippable]] to be tracked by the mask.</para> /// </summary> /// <param name="clippable"></param> public void AddClippable(IClippable clippable) { if (clippable == null) { return; } if (!this.m_ClipTargets.Contains(clippable)) { this.m_ClipTargets.Add(clippable); } this.m_ForceClip = true; }
/// <summary> /// <para>Add a [IClippable]] to be tracked by the mask.</para> /// </summary> /// <param name="clippable"></param> public void AddClippable(IClippable clippable) { if (clippable != null) { this.m_ShouldRecalculateClipRects = true; if (!this.m_ClipTargets.Contains(clippable)) { this.m_ClipTargets.Add(clippable); } this.m_ForceClip = true; } }
public void AddClippable(IClippable clippable) { if (clippable != null) { if (!this.m_ClipTargets.Contains(clippable)) { this.m_ClipTargets.Add(clippable); } clippable.SetClipRect(this.m_LastClipRectCanvasSpace, this.m_LastClipRectValid); clippable.Cull(this.m_LastClipRectCanvasSpace, this.m_LastClipRectValid); } }
public void AddClippable(IClippable clippable) { if (clippable != null) { if (!m_ClipTargets.Contains(clippable)) { m_ClipTargets.Add(clippable); } clippable.SetClipRect(m_LastClipRectCanvasSpace, m_LastClipRectValid); clippable.Cull(m_LastClipRectCanvasSpace, m_LastClipRectValid); } }
/// <summary> /// Find the correct RectMask2D for a given IClippable. /// </summary> /// <param name="clippable">Clippable to search from.</param> /// <returns>The Correct RectMask2D</returns> /// 18/6 2020 Graphic学习 /// 查找当前元素父级身上的RectMask2D组件,并返回 public static RectMask2D GetRectMaskForClippable(IClippable clippable) { List <RectMask2D> rectMaskComponents = ListPool <RectMask2D> .Get(); List <Canvas> canvasComponents = ListPool <Canvas> .Get(); RectMask2D componentToReturn = null; //查找当前元素以及父级元素身上的所有RectMask2D组件 //包括当前activeSelf=false以及enabled=false的元素 clippable.rectTransform.GetComponentsInParent(false, rectMaskComponents); if (rectMaskComponents.Count > 0) { for (int rmi = 0; rmi < rectMaskComponents.Count; rmi++) { componentToReturn = rectMaskComponents[rmi]; if (componentToReturn.gameObject == clippable.gameObject) { componentToReturn = null; continue; } if (!componentToReturn.isActiveAndEnabled) { componentToReturn = null; continue; } //查找当前元素所在的Canvas元素 clippable.rectTransform.GetComponentsInParent(false, canvasComponents); for (int i = canvasComponents.Count - 1; i >= 0; i--) { //如果当前元素不是这个Canvas或者Canvas的后裔的话,就把componentToReturn置空 if (!IsDescendantOrSelf(canvasComponents[i].transform, componentToReturn.transform) && canvasComponents[i].overrideSorting) { componentToReturn = null; break; } } break; } } ListPool <RectMask2D> .Release(rectMaskComponents); ListPool <Canvas> .Release(canvasComponents); return(componentToReturn); }
/// <summary> /// /// <para> /// Add a [IClippable]] to be tracked by the mask. /// </para> /// /// </summary> /// <param name="clippable"/> public void AddClippable(IClippable clippable) { if (clippable == null) { return; } if (!this.m_ClipTargets.Contains(clippable)) { this.m_ClipTargets.Add(clippable); } clippable.SetClipRect(this.m_LastClipRectCanvasSpace, this.m_LastClipRectValid); clippable.Cull(this.m_LastClipRectCanvasSpace, this.m_LastClipRectValid); }
public void RemoveClippable(IClippable clippable) { if (clippable == null) { return; } m_ShouldRecalculateClipRects = true; clippable.SetClipRect(new Rect(), false); m_ClipTargets.Remove(clippable); m_ForceClip = false; }
public void AddClippable(IClippable clippable) { if (clippable == null) { return; } m_ShouldRecalculateClipRects = true; MaskableGraphic maskable = clippable as MaskableGraphic; m_MaskableTargets.Add(maskable); m_ForceClip = true; }
/// <summary> /// Add a IClippable to be tracked by the mask. /// </summary> /// <param name="clippable">Add the clippable object for this mask</param> public void AddClippable(IClippable clippable) { if (clippable == null) { return; } m_ShouldRecalculateClipRects = true; if (!m_ClipTargets.Contains(clippable)) { m_ClipTargets.Add(clippable); } m_ForceClip = true; }
public void RemoveClippable(IClippable clippable) { if (clippable == null) { return; } m_ShouldRecalculateClipRects = true; clippable.SetClipRect(new Rect(), false); MaskableGraphic maskable = clippable as MaskableGraphic; m_MaskableTargets.Remove(maskable); m_ForceClip = true; }
/// <summary> /// <para>Find the correct RectMask2D for a given IClippable.</para> /// </summary> /// <param name="transform">Clippable to search from.</param> public static RectMask2D GetRectMaskForClippable(IClippable transform) { List <RectMask2D> rectMask2DList = ListPool <RectMask2D> .Get(); RectMask2D rectMask2D = (RectMask2D)null; transform.rectTransform.GetComponentsInParent <RectMask2D>(false, rectMask2DList); if (rectMask2DList.Count > 0) { rectMask2D = rectMask2DList[0]; } ListPool <RectMask2D> .Release(rectMask2DList); return(rectMask2D); }
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); }
public static int RecalculateClipping(IntPtr l) { int result; try { IClippable clippable = (IClippable)LuaObject.checkSelf(l); clippable.RecalculateClipping(); LuaObject.pushValue(l, true); result = 1; } catch (Exception e) { result = LuaObject.error(l, e); } return(result); }
/// <summary> /// Find the correct RectMask2D for a given IClippable. /// /// 获取传入的IClippable所对应的RectMask2D对象, /// 首先会获取所有的父节点上的RectMask2D对象,然后根据一些条件进行判断,直到获取到正确的RectMask2D对象并将其返回 /// </summary> /// <param name="clippable">Clippable to search from.</param> /// <returns>The Correct RectMask2D</returns> public static RectMask2D GetRectMaskForClippable(IClippable clippable) { List <RectMask2D> rectMaskComponents = ListPool <RectMask2D> .Get(); List <Canvas> canvasComponents = ListPool <Canvas> .Get(); RectMask2D componentToReturn = null; clippable.gameObject.GetComponentsInParent(false, rectMaskComponents); if (rectMaskComponents.Count > 0) { for (int rmi = 0; rmi < rectMaskComponents.Count; rmi++) { componentToReturn = rectMaskComponents[rmi]; if (componentToReturn.gameObject == clippable.gameObject) { componentToReturn = null; continue; } if (!componentToReturn.isActiveAndEnabled) { componentToReturn = null; continue; } clippable.gameObject.GetComponentsInParent(false, canvasComponents); for (int i = canvasComponents.Count - 1; i >= 0; i--) { // IsDescendantOrSelf --> 判断传入的两个Transform对象,返回后者是否是前者的子节点(后代结点)或者两个节点是同一个节点 if (!IsDescendantOrSelf(canvasComponents[i].transform, componentToReturn.transform) && canvasComponents[i].overrideSorting) { componentToReturn = null; break; } } break; } } ListPool <RectMask2D> .Release(rectMaskComponents); ListPool <Canvas> .Release(canvasComponents); return(componentToReturn); }
public static RectMask2D GetRectMaskForClippable(IClippable clippable) { List <RectMask2D> rectMaskComponents = ListPool <RectMask2D> .Get(); List <Canvas> canvasComponents = ListPool <Canvas> .Get(); RectMask2D componentToReturn = null; clippable.rectTransform.GetComponentsInParent(false, rectMaskComponents); if (rectMaskComponents.Count > 0) { for (int i = 0; i < rectMaskComponents.Count; i++) { componentToReturn = rectMaskComponents[i]; if (componentToReturn.gameObject == clippable.gameObject) { componentToReturn = null; continue; } if (!componentToReturn.isActiveAndEnabled) { componentToReturn = null; continue; } clippable.rectTransform.GetComponentsInParent(false, canvasComponents); for (int j = 0; j < canvasComponents.Count; j++) { if (!IsDescendantOfSelf(canvasComponents[j].transform, componentToReturn.transform) && canvasComponents[j].overrideSorting) { componentToReturn = null; break; } } return(componentToReturn); } } ListPool <RectMask2D> .Release(rectMaskComponents); ListPool <Canvas> .Release(canvasComponents); return(componentToReturn); }
public static int get_gameObject(IntPtr l) { int result; try { IClippable clippable = (IClippable)LuaObject.checkSelf(l); LuaObject.pushValue(l, true); LuaObject.pushValue(l, clippable.gameObject); result = 2; } catch (Exception e) { result = LuaObject.error(l, e); } return(result); }
public static RectMask2D GetRectMaskForClippable(IClippable transform) { List <RectMask2D> rectMaskComponents = ListPool <RectMask2D> .Get(); RectMask2D componentToReturn = null; transform.rectTransform.GetComponentsInParent <RectMask2D>(false, rectMaskComponents); if (rectMaskComponents.Count > 0) { componentToReturn = rectMaskComponents[0]; } ListPool <RectMask2D> .Release(rectMaskComponents); return(componentToReturn); }
/// <summary> /// <para>Notify all IClippables under the given component that they need to recalculate clipping.</para> /// </summary> /// <param name="mask"></param> public static void Notify2DMaskStateChanged(Component mask) { List <Component> results = ListPool <Component> .Get(); mask.GetComponentsInChildren <Component>(results); for (int i = 0; i < results.Count; i++) { if ((results[i] != null) && (results[i].gameObject != mask.gameObject)) { IClippable clippable = results[i] as IClippable; if (clippable != null) { clippable.RecalculateClipping(); } } } ListPool <Component> .Release(results); }
/// <summary> /// /// <para> /// Notify all IClippables under the given component that they need to recalculate clipping. /// </para> /// /// </summary> /// <param name="mask"/> public static void Notify2DMaskStateChanged(Component mask) { List <Component> list = ListPool <Component> .Get(); mask.GetComponentsInChildren <Component>(list); for (int index = 0; index < list.Count; ++index) { if (!((Object)list[index] == (Object)null) && !((Object)list[index].gameObject == (Object)mask.gameObject)) { IClippable clippable = list[index] as IClippable; if (clippable != null) { clippable.RecalculateClipping(); } } } ListPool <Component> .Release(list); }
public static NewRectMask2D GetRectMaskForClippable(IClippable clippable) { var rectMaskComponents = NewListPool <NewRectMask2D> .Get(); var canvasComponents = NewListPool <Canvas> .Get(); NewRectMask2D targetMask = null; clippable.rectTransform.GetComponentsInParent(false, rectMaskComponents); for (int i = 0; i < rectMaskComponents.Count; i++) { targetMask = rectMaskComponents[i]; if (targetMask.gameObject == clippable.gameObject) { continue; } if (!targetMask.isActiveAndEnabled) { continue; } clippable.rectTransform.GetComponentsInParent(false, canvasComponents); for (int j = 0; j < canvasComponents.Count; j++) { if (canvasComponents[j].overrideSorting && !IsDesendantOrSelf(canvasComponents[j].transform, targetMask.transform)) { targetMask = null; break; } } return(targetMask); } NewListPool <NewRectMask2D> .Release(rectMaskComponents); NewListPool <Canvas> .Release(canvasComponents); return(targetMask); }
/// <summary> /// <para>Find the correct RectMask2D for a given IClippable.</para> /// </summary> /// <param name="transform">Clippable to search from.</param> /// <param name="clippable"></param> 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; }
public static RectMask2D GetRectMaskForClippable(IClippable transform) { var t = transform.rectTransform.parent; var components = ListPool<Component>.Get(); while (t != null) { t.GetComponents(typeof(RectMask2D), components); for (var i = 0; i < components.Count; ++i) { if (components[i] != null && ((RectMask2D)components[i]).IsActive()) { var result = (RectMask2D)components[i]; ListPool<Component>.Release(components); return result; } } var canvas = t.GetComponent<Canvas>(); if (canvas) break; t = t.parent; } ListPool<Component>.Release(components); return null; }
public void AddClippable(IClippable clippable) { if (clippable == null) return; if (!m_ClipTargets.Contains(clippable)) m_ClipTargets.Add(clippable); clippable.SetClipRect(m_LastClipRectCanvasSpace, m_LastClipRectValid); clippable.Cull(m_LastClipRectCanvasSpace, m_LastClipRectValid); }
/// <summary> /// /// <para> /// Remove an IClippable from being tracked by the mask. /// </para> /// /// </summary> /// <param name="clippable"/> public void RemoveClippable(IClippable clippable) { if (clippable == null) return; clippable.SetClipRect(new Rect(), false); this.m_ClipTargets.Remove(clippable); }
/// <summary> /// <para>Find the correct RectMask2D for a given IClippable.</para> /// </summary> /// <param name="transform">Clippable to search from.</param> public static RectMask2D GetRectMaskForClippable(IClippable transform) { List<RectMask2D> rectMask2DList = ListPool<RectMask2D>.Get(); RectMask2D rectMask2D = (RectMask2D) null; transform.rectTransform.GetComponentsInParent<RectMask2D>(false, rectMask2DList); if (rectMask2DList.Count > 0) rectMask2D = rectMask2DList[0]; ListPool<RectMask2D>.Release(rectMask2DList); return rectMask2D; }
/// <summary> /// /// <para> /// Find the correct RectMask2D for a given IClippable. /// </para> /// /// </summary> /// <param name="transform">Clippable to search from.</param> public static RectMask2D GetRectMaskForClippable(IClippable transform) { Transform parent = transform.rectTransform.parent; List<Component> list = ListPool<Component>.Get(); for (; (Object) parent != (Object) null; parent = parent.parent) { parent.GetComponents(typeof (RectMask2D), list); for (int index = 0; index < list.Count; ++index) { if ((Object) list[index] != (Object) null && ((UIBehaviour) list[index]).IsActive()) { RectMask2D rectMask2D = (RectMask2D) list[index]; ListPool<Component>.Release(list); return rectMask2D; } } if ((bool) ((Object) parent.GetComponent<Canvas>())) break; } ListPool<Component>.Release(list); return (RectMask2D) null; }
/// <summary> /// <para>Add a [IClippable]] to be tracked by the mask.</para> /// </summary> /// <param name="clippable"></param> public void AddClippable(IClippable clippable) { if (clippable == null) return; if (!this.m_ClipTargets.Contains(clippable)) this.m_ClipTargets.Add(clippable); this.m_ForceClip = true; }