Advertisement
Guest User

Untitled

a guest
Nov 19th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. public void CombineOceanMeshes(Transform parent)
  2. {
  3. MeshFilter[] meshFilters = meshObjects.Select(o => o.GetComponent<MeshFilter>()).ToArray();
  4. CombineInstance[] combine = new CombineInstance[meshFilters.Length];
  5.  
  6. GameObject newMeshObject = Instantiate(Resources.Load("Tiles/"+nameof(OceanTile) + "EXP"), new Vector3(0, WorldController.oceanTileOffset, 0), Quaternion.identity) as GameObject;
  7. int i = 0;
  8. while(i < meshFilters.Length)
  9. {
  10. combine[i].mesh = meshFilters[i].sharedMesh;
  11. combine[i].transform = meshFilters[i].transform.localToWorldMatrix;
  12. //meshFilters[i].gameObject.SetActive(false);
  13. Destroy(meshFilters[i].gameObject);
  14.  
  15. combine[i].transform = transform.worldToLocalMatrix * meshFilters[i].transform.localToWorldMatrix;
  16. i++;
  17. }
  18.  
  19. Material mat = Resources.Load("Materials/WaterShaderMaterial", typeof(Material)) as Material;
  20.  
  21. MeshFilter newMeshFilter = newMeshObject.GetComponent<MeshFilter>();
  22. Renderer newRenderer = newMeshObject.GetComponent<Renderer>();
  23.  
  24. newMeshFilter.mesh = new Mesh();
  25. newMeshFilter.mesh.CombineMeshes(combine);
  26. newRenderer.material = mat;
  27. newRenderer.material.SetFloat("isIsland", 1);
  28.  
  29. newMeshObject.gameObject.SetActive(true);
  30. newMeshObject.transform.SetParent(transform);
  31. newMeshObject.transform.localPosition = Vector3.zero;
  32. newMeshObject.transform.localScale = Vector3.one;
  33.  
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement