Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System;
- using System.Collections;
- using System.IO;
- public class TerrainManager : MonoBehaviour
- {
- public TerrainData terrain;
- float[,] heights;
- // Use this for initialization
- void Start()
- {
- LoadTerrain("assets/textures/planets/intersteller/rocky/heightmaps/rocky4.raw");
- }
- // Update is called once per frame
- void Update()
- {
- }
- void SaveTerrain(string filename)
- {
- float[,] dat = terrain.GetHeights(0, 0, terrain.heightmapWidth, terrain.heightmapHeight);
- FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite);
- BinaryWriter bw = new BinaryWriter(fs);
- for (int i = 0; i < terrain.heightmapWidth; i++)
- {
- for (int j = 0; j < terrain.heightmapHeight; j++)
- {
- bw.Write(dat[i, j]);
- }
- }
- bw.Close();
- }
- void LoadTerrain(string filename)
- {
- float[,] dat = terrain.GetHeights(0, 0, terrain.heightmapWidth, terrain.heightmapHeight);
- FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite);
- BinaryReader br = new BinaryReader(fs);
- br.BaseStream.Seek(0, SeekOrigin.Begin);
- for (int i = 0; i < terrain.heightmapWidth; i++)
- {
- for (int j = 0; j < terrain.heightmapHeight; j++)
- {
- dat[i, j] = (float)br.ReadSingle();
- }
- }
- br.Close();
- terrain.SetHeights(0, 0, dat);
- heights = terrain.GetHeights(50, 50, 1024, 1024);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement