Beispiel #1
0
        private void DoOnPopulateMesh(VertexHelper vh)
        {
            vh.Clear();
            var thisRT    = this.rectTransform;
            var thisRect  = this.rectTransform.rect;
            int vOff      = 0;
            var rectArray = this.rectRefs;

            if (rectArray == null || rectArray.Count == 0)
            {
                return;
            }
            using (var quad = ArrayPool <UIVertex> .Get(4)) {
                Rect prevRect = default(Rect);
                for (var i = 0; i < rectArray.Count; i++)
                {
                    var c = rectArray[i].value;
                    if (c == null)
                    {
                        continue;
                    }
                    var curRect = thisRT.InverseTransformRect(c);
                    if (i > 0 && m_connectEnds)
                    {
                        var uiVert = UIVertex.simpleVert;
                        uiVert.color = this.color;
                        var zPos = thisRT.position.z;
                        uiVert.position = new Vector3(prevRect.xMax, prevRect.yMin, zPos);
                        uiVert.uv0      = new Vector2(0, 0);
                        quad.array[0]   = uiVert;
                        uiVert.position = new Vector3(prevRect.xMax, prevRect.yMax, zPos);
                        uiVert.uv0      = new Vector2(0, 1);
                        quad.array[1]   = uiVert;
                        uiVert.position = new Vector3(curRect.xMin, curRect.yMax, zPos);
                        uiVert.uv0      = new Vector2(1, 1);
                        quad.array[2]   = uiVert;
                        uiVert.position = new Vector3(curRect.xMin, curRect.yMin, zPos);
                        uiVert.uv0      = new Vector2(1, 0);
                        quad.array[3]   = uiVert;
                        vOff           += vh.AddQuadClipped(quad.array, thisRect, vOff);
                    }
                    vOff    += vh.AddRectClipped(curRect, this.color, thisRect, vOff);
                    prevRect = curRect;
                }
            }
        }