コード例 #1
0
    // Token: 0x06004A06 RID: 18950 RVA: 0x0011CF1C File Offset: 0x0011B11C
    private void RepositionVariableSize(List <Transform> children)
    {
        float num  = 0f;
        float num2 = 0f;
        int   num3 = (this.columns <= 0) ? 1 : (children.Count / this.columns + 1);
        int   num4 = (this.columns <= 0) ? children.Count : this.columns;

        global::AABBox[,] array = new global::AABBox[num3, num4];
        global::AABBox[] array2 = new global::AABBox[num4];
        global::AABBox[] array3 = new global::AABBox[num3];
        int num5  = 0;
        int num6  = 0;
        int i     = 0;
        int count = children.Count;

        while (i < count)
        {
            Transform      transform  = children[i];
            global::AABBox aabbox     = global::NGUIMath.CalculateRelativeWidgetBounds(transform);
            Vector3        localScale = transform.localScale;
            aabbox.SetMinMax(Vector3.Scale(aabbox.min, localScale), Vector3.Scale(aabbox.max, localScale));
            array[num6, num5] = aabbox;
            array2[num5].Encapsulate(aabbox);
            array3[num6].Encapsulate(aabbox);
            if (++num5 >= this.columns && this.columns > 0)
            {
                num5 = 0;
                num6++;
            }
            i++;
        }
        num5 = 0;
        num6 = 0;
        int j      = 0;
        int count2 = children.Count;

        while (j < count2)
        {
            Transform      transform2    = children[j];
            global::AABBox aabbox2       = array[num6, num5];
            global::AABBox aabbox3       = array2[num5];
            global::AABBox aabbox4       = array3[num6];
            Vector3        localPosition = transform2.localPosition;
            Vector3        min           = aabbox2.min;
            Vector3        max           = aabbox2.max;
            Vector3        vector        = aabbox2.size * 0.5f;
            Vector3        center        = aabbox2.center;
            Vector3        min2          = aabbox4.min;
            Vector3        max2          = aabbox4.max;
            Vector3        min3          = aabbox3.min;
            localPosition.x  = num + vector.x - center.x;
            localPosition.x += min.x - min3.x + this.padding.x;
            if (this.direction == global::UITable.Direction.Down)
            {
                localPosition.y  = -num2 - vector.y - center.y;
                localPosition.y += (max.y - min.y - max2.y + min2.y) * 0.5f - this.padding.y;
            }
            else
            {
                localPosition.y  = num2 + vector.y - center.y;
                localPosition.y += (max.y - min.y - max2.y + min2.y) * 0.5f - this.padding.y;
            }
            num += min3.x - min3.x + this.padding.x * 2f;
            transform2.localPosition = localPosition;
            if (++num5 >= this.columns && this.columns > 0)
            {
                num5 = 0;
                num6++;
                num   = 0f;
                num2 += vector.y * 2f + this.padding.y * 2f;
            }
            j++;
        }
    }