private void Initialize() { shapeGenerator = new ShapeGenerator(shapeSettings); if (meshFilters == null || meshFilters.Length == 0) { meshFilters = new MeshFilter[6]; } terrainFaces = new PlanetTerrainFace[6]; Vector3[] directions = { Vector3.up, Vector3.down, Vector3.left, Vector3.right, Vector3.forward, Vector3.back }; for (int i = 0; i < 6; i++) { if (meshFilters[i] == null) { GameObject meshObj = new GameObject("Planet_Mesh: " + directions[i]); meshObj.transform.parent = transform; meshObj.AddComponent <MeshRenderer>().sharedMaterial = new Material(Shader.Find("Standard")); meshFilters[i] = meshObj.AddComponent <MeshFilter>(); meshFilters[i].sharedMesh = new Mesh(); } terrainFaces[i] = new PlanetTerrainFace(shapeGenerator, meshFilters[i].sharedMesh, resolution, directions[i]); bool renderFace = faceRenderMask == FaceRenderMask.All || (int)faceRenderMask - 1 == i; meshFilters[i].gameObject.SetActive(renderFace); } }
private void Initialize() { shapeGenerator.UpdateSettings(shapeSettings); colorGenerator.UpdateSettings(colorSettings); if (meshFilters == null || meshFilters.Length == 0) { meshFilters = new MeshFilter[6]; } terrainFaces = new PlanetTerrainFace[6]; Vector3[] directions = { Vector3.up, Vector3.down, Vector3.left, Vector3.right, Vector3.forward, Vector3.back }; for (int i = 0; i < 6; i++) { if (meshFilters[i] == null) { GameObject meshObj = new GameObject("mesh"); meshObj.transform.parent = transform; meshObj.AddComponent <MeshRenderer>(); meshFilters[i] = meshObj.AddComponent <MeshFilter>(); meshFilters[i].sharedMesh = new Mesh(); } meshFilters[i].GetComponent <MeshRenderer>().sharedMaterial = colorSettings.planetMaterial; terrainFaces[i] = new PlanetTerrainFace(meshFilters[i].sharedMesh, resolution, directions[i], shapeGenerator); bool renderFace = faceRenderMask == FaceRenderMask.All || (int)faceRenderMask - 1 == i; meshFilters[i].gameObject.SetActive(renderFace); } }