Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. using UnityEngine;
  2. using System;
  3. using System.Collections;
  4. using System.IO;
  5. public class TerrainManager : MonoBehaviour
  6. {
  7.  
  8. public TerrainData terrain;
  9. float[,] heights;
  10. // Use this for initialization
  11. void Start()
  12. {
  13. LoadTerrain("assets/textures/planets/intersteller/rocky/heightmaps/rocky4.raw");
  14. }
  15.  
  16. // Update is called once per frame
  17. void Update()
  18. {
  19.  
  20. }
  21.  
  22. void SaveTerrain(string filename)
  23. {
  24. float[,] dat = terrain.GetHeights(0, 0, terrain.heightmapWidth, terrain.heightmapHeight);
  25. FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite);
  26. BinaryWriter bw = new BinaryWriter(fs);
  27. for (int i = 0; i < terrain.heightmapWidth; i++)
  28. {
  29. for (int j = 0; j < terrain.heightmapHeight; j++)
  30. {
  31. bw.Write(dat[i, j]);
  32. }
  33. }
  34. bw.Close();
  35. }
  36.  
  37. void LoadTerrain(string filename)
  38. {
  39. float[,] dat = terrain.GetHeights(0, 0, terrain.heightmapWidth, terrain.heightmapHeight);
  40. FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite);
  41. BinaryReader br = new BinaryReader(fs);
  42. br.BaseStream.Seek(0, SeekOrigin.Begin);
  43. for (int i = 0; i < terrain.heightmapWidth; i++)
  44. {
  45. for (int j = 0; j < terrain.heightmapHeight; j++)
  46. {
  47. dat[i, j] = (float)br.ReadSingle();
  48. }
  49. }
  50. br.Close();
  51. terrain.SetHeights(0, 0, dat);
  52. heights = terrain.GetHeights(50, 50, 1024, 1024);
  53. }
  54.  
  55.  
  56.  
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement