/// <summary> /// Generates the front mesh of the water. No texture tiling is applied. /// </summary> private void GenerateFrontMeshNoTiling() { if (GetComponent <Renderer>().sharedMaterial == null) { return; } SetFrontMeshUnitsPerUV(); GenerateFrontMeshDataNoTiling(); ParentDMesh.GenerateTriangles(xSegments, ySegments, xVerts); }
/// <summary> /// Generates the front mesh vertices as well as the UV coordinates. /// No texture tiling is applied. /// </summary> private void GenerateFrontMeshDataNoTiling() { Vector3 vertPos = Vector3.zero; Vector2 UV; prevSurfaceVertsCount = frontMeshVertsCount / 2; frontMeshVertsCount = 0; float X, Y; for (int y = 0; y < yVerts; y++) { for (int x = 0; x < xVerts; x++) { if (x < xVerts - 1) { X = x * xVertDistance + handlesPosition[2].x; } else { X = handlesPosition[2].x + renderTextureWidth * rtPixelSize; } Y = handlesPosition[1].y + y * height; vertPos.x = X; vertPos.y = Y; GetFrontMeshUVNoTiling(x, y, out UV); ParentDMesh.AddVertex(vertPos, UV, true); frontMeshVertsCount++; } } if (water2DRippleScript) { frontMeshRend.sharedMaterial.SetFloat("_WaterHeight", height); frontMeshRend.sharedMaterial.SetFloat("_WaterWidth", width); } }