private GameObject GenerateMainTerrain() { OsmBound boundData = map.bounds; List <Vector3> margin = new List <Vector3>(); margin.Add(new Vector3(0 - boundData.size.x / 2, (float)-0.01, 0 - boundData.size.z / 2)); margin.Add(new Vector3(0 + boundData.size.x / 2, (float)-0.01, 0 - boundData.size.z / 2)); margin.Add(new Vector3(0 - boundData.size.x / 2, (float)-0.01, 0 + boundData.size.z / 2)); margin.Add(new Vector3(0 + boundData.size.x / 2, (float)-0.01, 0 + boundData.size.z / 2)); GameObject go = new GameObject("TerrainMain"); go.transform.position = new Vector3(0, 0, 0); MeshFilter mf = go.AddComponent <MeshFilter>(); MeshRenderer mr = go.AddComponent <MeshRenderer>(); MeshCollider mc = go.AddComponent <MeshCollider>(); mr.material = cityMaterial; mr.material.mainTextureScale = new Vector2(boundData.size.x, boundData.size.z); List <Vector3> terVec = margin; List <int> indx = new List <int> { 0, 3, 1, 0, 2, 3 }; Vector2[] uv = new Vector2[4] { new Vector2(1, 1), new Vector2(0, 1), new Vector2(1, 0), new Vector2(0, 0) }; mf.mesh.vertices = terVec.ToArray(); mf.mesh.triangles = indx.ToArray(); mf.mesh.uv = uv; mf.mesh.RecalculateNormals(); mc.sharedMesh = mf.mesh; return(go); }
void SetBounds(XmlNode xmlNode) { bounds = new OsmBound(xmlNode); }