Пример #1
0
    void TriangulateConnection(Cell cell, Direction direction)
    {
        Cell neighbor = cell.GetNeighbor(direction);

        if (neighbor != null)
        {
            if (cell.hasEdgeInDirection(direction))
            {
                Vector3 center = cell.transform.localPosition;

                Vector3 v1 = center + CellMetrics.GetFirstSolidCorner(direction);
                Vector3 v4 = center + CellMetrics.GetSecondSolidCorner(direction);
                Vector3 v2 = v1;
                Vector3 v3 = v4;

                v2.y = v3.y = cell.GetNeighbor(direction).Elevation *CellMetrics.elevationStep;

                terrain.AddQuad(v1, v2, v3, v4);
                if (cell.isUnderWater)
                {
                    water.AddQuad(v1, v2, v3, v4);
                }

                if (cell.Elevation > neighbor.Elevation)
                {
                    terrain.AddQuadColor(cell.Color);
                }
                else
                {
                    terrain.AddQuadColor(neighbor.Color);
                }
            }
        }
        else if (cell.IsEdge)
        {
            Vector3 center = cell.transform.localPosition;

            Vector3 v1 = center + CellMetrics.GetFirstSolidCorner(direction);
            Vector3 v4 = center + CellMetrics.GetSecondSolidCorner(direction);
            Vector3 v2 = v1;
            Vector3 v3 = v4;

            v2.y = v3.y = -1 * CellMetrics.elevationStep;

            terrain.AddQuad(v1, v2, v3, v4);
            if (cell.isUnderWater)
            {
                water.AddQuad(v1, v2, v3, v4);
            }
            terrain.AddQuadColor(cell.Color);
        }
    }
Пример #2
0
 void Method(CellMetrics metrics)
 {
     StaticMethod(metrics);
 }
Пример #3
0
 internal static void StaticMethod(CellMetrics metrics)
 {
 }