public override void SetVertical(float y, float height) { base.SetVertical(y, height); if (this.entries.Count == 0) { return; } RectOffset padding = this.style.padding; if (this.resetCoords) { y = 0.0f; } if (this.isVertical) { if (this.style != GUIStyle.none) { float a1 = (float)padding.top; float a2 = (float)padding.bottom; if (this.entries.Count != 0) { a1 = Mathf.Max(a1, (float)this.entries[0].margin.top); a2 = Mathf.Max(a2, (float)this.entries[this.entries.Count - 1].margin.bottom); } y += a1; height -= a2 + a1; } float num1 = height - this.spacing * (float)(this.entries.Count - 1); float t = 0.0f; if ((double)this.m_ChildMinHeight != (double)this.m_ChildMaxHeight) { t = Mathf.Clamp((float)(((double)num1 - (double)this.m_ChildMinHeight) / ((double)this.m_ChildMaxHeight - (double)this.m_ChildMinHeight)), 0.0f, 1f); } float num2 = 0.0f; if ((double)num1 > (double)this.m_ChildMaxHeight && this.m_StretchableCountY > 0) { num2 = (num1 - this.m_ChildMaxHeight) / (float)this.m_StretchableCountY; } int num3 = 0; bool flag = true; using (List <GUILayoutEntry> .Enumerator enumerator = this.entries.GetEnumerator()) { while (enumerator.MoveNext()) { GUILayoutEntry current = enumerator.Current; float f = Mathf.Lerp(current.minHeight, current.maxHeight, t) + num2 * (float)current.stretchHeight; if (current.style != GUILayoutUtility.spaceStyle) { int num4 = current.margin.top; if (flag) { num4 = 0; flag = false; } int num5 = num3 <= num4 ? num4 : num3; y += (float)num5; num3 = current.margin.bottom; } current.SetVertical(Mathf.Round(y), Mathf.Round(f)); y += f + this.spacing; } } } else if (this.style != GUIStyle.none) { using (List <GUILayoutEntry> .Enumerator enumerator = this.entries.GetEnumerator()) { while (enumerator.MoveNext()) { GUILayoutEntry current = enumerator.Current; float num = (float)Mathf.Max(current.margin.top, padding.top); float y1 = y + num; float height1 = height - (float)Mathf.Max(current.margin.bottom, padding.bottom) - num; if (current.stretchHeight != 0) { current.SetVertical(y1, height1); } else { current.SetVertical(y1, Mathf.Clamp(height1, current.minHeight, current.maxHeight)); } } } } else { float num1 = y - (float)this.margin.top; float num2 = height + (float)this.margin.vertical; using (List <GUILayoutEntry> .Enumerator enumerator = this.entries.GetEnumerator()) { while (enumerator.MoveNext()) { GUILayoutEntry current = enumerator.Current; if (current.stretchHeight != 0) { current.SetVertical(num1 + (float)current.margin.top, num2 - (float)current.margin.vertical); } else { current.SetVertical(num1 + (float)current.margin.top, Mathf.Clamp(num2 - (float)current.margin.vertical, current.minHeight, current.maxHeight)); } } } } }