Exemplo n.º 1
0
    public Mesh CreateTerrain(Vector3 origin)
    {
        Mesh mesh = new Mesh();

        mesh.Clear();

        if (meshType == SphereMeshType.Icosphere)
        {
            mesh = IcoSphere.GetIcosphereMesh(resolution);
        }
        else
        {
            mesh = CubicSphere.GetSphereMesh(resolution);
        }

        if (hasCraters)
        {
            GenerateCraters(mesh, nrOfCraters);
        }

        AddMeshDetail(mesh, origin, terrainRadius, true);
        UpdateTerrainMinMax(mesh);

        mesh.RecalculateNormals();
        mesh.colors = GetColors(mesh.vertices, mesh.normals);
        mesh.bounds = new Bounds(origin, new Vector3(float.MaxValue, float.MaxValue, float.MaxValue));

        return(mesh);
    }
Exemplo n.º 2
0
    void OnValidate()
    {
        MeshFilter   meshFilter   = this.gameObject.GetComponent <MeshFilter>();
        MeshRenderer meshRenderer = this.gameObject.GetComponent <MeshRenderer>();

        if (meshFilter != null)
        {
            meshFilter.mesh = IcoSphere.GetIcosphereMesh(resolution);
        }
        if (meshRenderer != null)
        {
            meshRenderer.sharedMaterial = new Material(shader);
        }
    }
Exemplo n.º 3
0
    public Mesh CreateWater(Vector3 origin)
    {
        Mesh mesh = new Mesh();

        mesh.Clear();

        mesh = IcoSphere.GetIcosphereMesh(resolution);
        AddMeshDetail(mesh, origin, waterRadius, false);

        mesh.RecalculateNormals();
        mesh.bounds   = new Bounds(origin, new Vector3(float.MaxValue, float.MaxValue, float.MaxValue));
        mesh.tangents = waterLevelData;

        return(mesh);
    }