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 num = RectTransformSnapping.kSidesAndMiddle[side];
float num2 = Mathf.Lerp(rect.anchorMin[axis], rect.anchorMax[axis], num);
list.Add(new SnapGuide(num2 * parentRect.rect.size[axis], RectTransformSnapping.GetGuideLineForRect(parentRect, axis, num2)));
float num3 = Mathf.Lerp(rect.anchorMin[axis], rect.anchorMax[axis], num);
if (num != num3)
{
list.Add(new SnapGuide(num * parentRect.rect.size[axis], false, RectTransformSnapping.GetGuideLineForRect(parentRect, axis, num)));
}
}
IEnumerator enumerator = parentSpace.GetEnumerator();
try
{
while (enumerator.MoveNext())
{
Transform transform = (Transform)enumerator.Current;
if (!(transform == self))
{
RectTransform component = transform.GetComponent <RectTransform>();
if (component)
{
if (side == 0)
{
bool safe = component.anchorMin[axis] == rect.anchorMin[axis];
list.Add(new SnapGuide(component.GetRectInParentSpace().min[axis], safe, RectTransformSnapping.GetGuideLineForRect(component, axis, 0f)));
safe = (component.anchorMax[axis] == rect.anchorMin[axis]);
list.Add(new SnapGuide(component.GetRectInParentSpace().max[axis], safe, RectTransformSnapping.GetGuideLineForRect(component, axis, 1f)));
}
if (side == 2)
{
bool safe = component.anchorMax[axis] == rect.anchorMax[axis];
list.Add(new SnapGuide(component.GetRectInParentSpace().max[axis], safe, RectTransformSnapping.GetGuideLineForRect(component, axis, 1f)));
safe = (component.anchorMin[axis] == rect.anchorMax[axis]);
list.Add(new SnapGuide(component.GetRectInParentSpace().min[axis], safe, RectTransformSnapping.GetGuideLineForRect(component, axis, 0f)));
}
if (side == 1)
{
bool safe = component.anchorMin[axis] - rect.anchorMin[axis] == -(component.anchorMax[axis] - rect.anchorMax[axis]);
list.Add(new SnapGuide(component.GetRectInParentSpace().center[axis], safe, RectTransformSnapping.GetGuideLineForRect(component, axis, 0.5f)));
}
}
}
}
}
finally
{
IDisposable disposable;
if ((disposable = (enumerator as IDisposable)) != null)
{
disposable.Dispose();
}
}
return(list);
}