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;
}