void CreateBorderDashed() { using (var vh = new VertexHelper()) { var sections = BorderSectionBounds(); var top = sections[0]; var right = sections[1]; var bottom = sections[2]; var left = sections[3]; var outerBounds = BorderOuterBounds; // Horizontal float scaledDashLength = property.border.dashLength / property.width; float scaledGapLength = property.border.gapLength / property.width; int numRects = Mathf.CeilToInt(top.size.x / (scaledDashLength + scaledGapLength)); for (int i = 0; i < numRects; i++) { float displacement = (scaledDashLength + scaledGapLength) * i; Vector2 anchor = top.TopLeft().Incr(displacement, 0); var rect = new Bounds().FromPoints( anchor, outerBounds.ClosestPoint(anchor.Incr(scaledDashLength, -scaledBorderHeight))); MeshUtil.AddRect(rect, vh); // BOT anchor = bottom.TopLeft().Incr(displacement, 0); rect = new Bounds().FromPoints( anchor, outerBounds.ClosestPoint(anchor.Incr(scaledDashLength, -scaledBorderHeight))); MeshUtil.AddRect(rect, vh); } // Vertical scaledDashLength = property.border.dashLength / property.height; scaledGapLength = property.border.gapLength / property.height; numRects = Mathf.CeilToInt(right.size.y / (scaledDashLength + scaledGapLength)); for (int i = 0; i < numRects; i++) { float displacement = (scaledDashLength + scaledGapLength) * i; Vector2 anchor = right.TopLeft().Incr(0, -displacement); var rect = new Bounds().FromPoints( anchor, outerBounds.ClosestPoint(anchor.Incr(scaledBorderWidth, -scaledDashLength))); MeshUtil.AddRect(rect, vh); // BOT anchor = left.TopLeft().Incr(0, -displacement); rect = new Bounds().FromPoints( anchor, outerBounds.ClosestPoint(anchor.Incr(scaledBorderWidth, -scaledDashLength))); MeshUtil.AddRect(rect, vh); } // draw bot outerMeshController.mesh = vh.CreateMesh(); } }
void CreateBorderSolid() { using (var vh = new VertexHelper()) { foreach (Bounds b in BorderSectionBounds()) { MeshUtil.AddRect(b, vh); } outerMeshController.mesh = vh.CreateMesh(); } }
/***** PRIVATE: MESH CREATION *****/ void CreateInner() { Color32 color32 = Color.white; using (var vh = new VertexHelper()) { vh.AddVert(new Vector3(-0.5f, -0.5f), color32, TEXTURE_MID_POINT); vh.AddVert(new Vector3(-0.5f, 0.5f), color32, TEXTURE_MID_POINT); vh.AddVert(new Vector3(0.5f, -0.5f), color32, TEXTURE_MID_POINT); vh.AddVert(new Vector3(0.5f, 0.5f), color32, TEXTURE_MID_POINT); vh.AddTriangle(0, 1, 2); vh.AddTriangle(2, 1, 3); innerMeshController.mesh = vh.CreateMesh(); } }