Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
            }
        }