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); }
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); } }
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); }