Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void CombineOceanMeshes(Transform parent)
- {
- MeshFilter[] meshFilters = meshObjects.Select(o => o.GetComponent<MeshFilter>()).ToArray();
- CombineInstance[] combine = new CombineInstance[meshFilters.Length];
- GameObject newMeshObject = Instantiate(Resources.Load("Tiles/"+nameof(OceanTile) + "EXP"), new Vector3(0, WorldController.oceanTileOffset, 0), Quaternion.identity) as GameObject;
- int i = 0;
- while(i < meshFilters.Length)
- {
- combine[i].mesh = meshFilters[i].sharedMesh;
- combine[i].transform = meshFilters[i].transform.localToWorldMatrix;
- //meshFilters[i].gameObject.SetActive(false);
- Destroy(meshFilters[i].gameObject);
- combine[i].transform = transform.worldToLocalMatrix * meshFilters[i].transform.localToWorldMatrix;
- i++;
- }
- Material mat = Resources.Load("Materials/WaterShaderMaterial", typeof(Material)) as Material;
- MeshFilter newMeshFilter = newMeshObject.GetComponent<MeshFilter>();
- Renderer newRenderer = newMeshObject.GetComponent<Renderer>();
- newMeshFilter.mesh = new Mesh();
- newMeshFilter.mesh.CombineMeshes(combine);
- newRenderer.material = mat;
- newRenderer.material.SetFloat("isIsland", 1);
- newMeshObject.gameObject.SetActive(true);
- newMeshObject.transform.SetParent(transform);
- newMeshObject.transform.localPosition = Vector3.zero;
- newMeshObject.transform.localScale = Vector3.one;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement