public void UpdatePlaneByTerrain() { NrTerrain instance = NrTSingleton <NrTerrain> .Instance; if (instance.IsActive()) { return; } if (null == Terrain.activeTerrain) { Debug.Log(":activeTerrain fail:" + (null == Terrain.activeTerrain)); return; } if (null == Terrain.activeTerrain.terrainData) { Debug.Log(":terrainData fail:" + (null == Terrain.activeTerrain.terrainData)); } }
public void UpdatePlaneByTerrain() { NrTerrain instance = NrTSingleton <NrTerrain> .Instance; if (instance.IsActive()) { if (this.mMesh != null) { Vector3 pos = new Vector3(base.transform.position.x + this.PlaneSizeX / 2f, base.transform.position.y, base.transform.position.z + this.PlaneSizeZ / 2f); float num = this.PlaneSizeX / (float)this.m_planeSegments; float num2 = this.PlaneSizeZ / (float)this.m_planeSegments; int num3 = this.m_planeSegments + 1; Vector3[] vertices = this.mMesh.vertices; for (int i = 0; i < num3; i++) { for (int j = 0; j < num3; j++) { vertices[i * num3 + j].y = instance.SampleHeight(pos) - pos.y + this.VERTEX_SPACING; pos.x -= num; } pos.x += (float)num3 * num; pos.z -= num2; } this.mMesh.vertices = vertices; this.mMesh.RecalculateBounds(); int num4 = (int)((float)num3 / 2f * (float)num3); this.mCenterPos = this.Vertex2World(vertices[num4]); } return; } if (null == Terrain.activeTerrain) { Debug.Log(":activeTerrain fail:" + (null == Terrain.activeTerrain)); return; } if (null == Terrain.activeTerrain.terrainData) { Debug.Log(":terrainData fail:" + (null == Terrain.activeTerrain.terrainData)); } }