UnityEditor.RectTransformSnapping.GetSnapGuides C# (CSharp) Method

GetSnapGuides() private static method

private static GetSnapGuides ( Transform parentSpace, Transform self, RectTransform parentRect, RectTransform rect, int axis, int side ) : List
parentSpace UnityEngine.Transform
self UnityEngine.Transform
parentRect UnityEngine.RectTransform
rect UnityEngine.RectTransform
axis int
side int
return List
        private static List<SnapGuide> GetSnapGuides(Transform parentSpace, Transform self, RectTransform parentRect, RectTransform rect, int axis, int side)
        {
            List<SnapGuide> list = new List<SnapGuide>();
            if (parentRect != null)
            {
                float t = kSidesAndMiddle[side];
                float num2 = Mathf.Lerp(rect.anchorMin[axis], rect.anchorMax[axis], t);
                list.Add(new SnapGuide(num2 * parentRect.rect.size[axis], GetGuideLineForRect(parentRect, axis, num2)));
                float num3 = Mathf.Lerp(rect.anchorMin[axis], rect.anchorMax[axis], t);
                if (t != num3)
                {
                    list.Add(new SnapGuide(t * parentRect.rect.size[axis], false, GetGuideLineForRect(parentRect, axis, t)));
                }
            }
            IEnumerator enumerator = parentSpace.GetEnumerator();
            try
            {
                while (enumerator.MoveNext())
                {
                    Transform current = (Transform) enumerator.Current;
                    if (current != self)
                    {
                        RectTransform component = current.GetComponent<RectTransform>();
                        bool safe = true;
                        if (component != null)
                        {
                            if (side == 0)
                            {
                                safe = component.anchorMin[axis] == rect.anchorMin[axis];
                                list.Add(new SnapGuide(component.GetRectInParentSpace().min[axis], safe, GetGuideLineForRect(component, axis, 0f)));
                                safe = component.anchorMax[axis] == rect.anchorMin[axis];
                                list.Add(new SnapGuide(component.GetRectInParentSpace().max[axis], safe, GetGuideLineForRect(component, axis, 1f)));
                            }
                            if (side == 2)
                            {
                                safe = component.anchorMax[axis] == rect.anchorMax[axis];
                                list.Add(new SnapGuide(component.GetRectInParentSpace().max[axis], safe, GetGuideLineForRect(component, axis, 1f)));
                                safe = component.anchorMin[axis] == rect.anchorMax[axis];
                                list.Add(new SnapGuide(component.GetRectInParentSpace().min[axis], safe, GetGuideLineForRect(component, axis, 0f)));
                            }
                            if (side == 1)
                            {
                                safe = (component.anchorMin[axis] - rect.anchorMin[axis]) == -(component.anchorMax[axis] - rect.anchorMax[axis]);
                                list.Add(new SnapGuide(component.GetRectInParentSpace().center[axis], safe, GetGuideLineForRect(component, axis, 0.5f)));
                            }
                        }
                    }
                }
            }
            finally
            {
                IDisposable disposable = enumerator as IDisposable;
                if (disposable != null)
                {
                    disposable.Dispose();
                }
            }
            return list;
        }

Usage Example

 internal static void CalculatePositionSnapValues(Transform parentSpace, Transform self, RectTransform parentRect, RectTransform rect)
 {
     for (int index = 0; index < 2; ++index)
     {
         RectTransformSnapping.s_SnapGuides[index].Clear();
     }
     if ((Object)parentSpace == (Object)null)
     {
         return;
     }
     for (int axis = 0; axis < 2; ++axis)
     {
         for (int side = 0; side < RectTransformSnapping.kSidesAndMiddle.Length; ++side)
         {
             using (List <SnapGuide> .Enumerator enumerator = RectTransformSnapping.GetSnapGuides(parentSpace, self, parentRect, rect, axis, side).GetEnumerator())
             {
                 while (enumerator.MoveNext())
                 {
                     SnapGuide current = enumerator.Current;
                     current.value = RectTransformSnapping.GetGuideValueForRect(rect, current.value, axis, RectTransformSnapping.kSidesAndMiddle[side]);
                     RectTransformSnapping.s_SnapGuides[axis].AddGuide(current);
                 }
             }
         }
     }
 }
All Usage Examples Of UnityEditor.RectTransformSnapping::GetSnapGuides