// Use this for initialization void Start() { this.m_PosStream = ScriptReactor.Instance.getCharacterStream(); }
private ScriptReactor() { this.mainCharacterPosStream = new UniRx.Subject <UniRx.Tuple <float, float, float> >(); }
// Use this for initialization void Start() { mainCharacterPosStream = ScriptReactor.Instance.getCharacterStream(); // observer character position @ every second mainCharacterPosStream.SubscribeOn(Scheduler.ThreadPool).Sample(TimeSpan.FromSeconds(1.0)).Subscribe(this); ////////////////////////////////////////// TerrainData td = this.terrain.terrainData; float terrainWidth = td.size.x; float terrainHeight = td.size.y; Vector3 vec = this.terrain.GetPosition(); float x = vec.x; float y = vec.y; float z = vec.z; // need to change resolution before setting the size int cx = this.terrain.terrainData.heightmapHeight; int rx = this.terrain.terrainData.heightmapWidth; // int resolution = this.terrain.terrainData.detailResolution; int baseMapResolution = this.terrain.terrainData.baseMapResolution; TerrainData _genTD = new TerrainData(); _genTD.heightmapResolution = this.terrain.terrainData.heightmapResolution; _genTD.SetDetailResolution(rx, cx); _genTD.size = new Vector3(td.size.x, td.size.y, td.size.z); GameObject tGO = Terrain.CreateTerrainGameObject(_genTD); this.pTerrain = tGO.GetComponent <Terrain>(); this.pTerrain.transform.position += new Vector3(td.size.x, 0, 0); // Read terrain from file int h = this.terrain.terrainData.heightmapHeight; int w = this.terrain.terrainData.heightmapWidth; float[,] data = new float[h, w]; data[0, 0] = 0.05f; data[0, 1] = 0.02f; data[0, 2] = 0.02f; data[0, 4] = 0.1f; data[1, 0] = 0.021f; // read file // 1. using (System.IO.BinaryReader b = new BinaryReader( File.Open("terrainData.raw", FileMode.Open))) { // 2. // Position and length variables. // 2A. // Use BaseStream. int length = (int)b.BaseStream.Length; for (int r = 0; r < h; r++) { for (int c = 0; c < w; c++) { data[r, c] = (float)b.ReadUInt16() / 0xFFFF; } } } this.pTerrain.terrainData.SetHeights(0, 0, data); this.pTerrain.Flush(); }