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