public Pavement(Highway highway, myTerrain terrain, pavementSide _side) { Pavementid = highway.id; side = _side; if(side == pavementSide.left) { rightSideVertexes = new List<Vector3>(highway.leftSideVertexes); leftSideVertexes = new List<Vector3>(); generateOtherSide(highway.leftSidewalkSize, terrain); PavementObj = new GameObject("LeftPavement" + Pavementid); PavementObj.transform.parent = highway.highwayGameObject.transform; } if(side == pavementSide.right) { leftSideVertexes = new List<Vector3>(highway.rightSideVertexes); rightSideVertexes = new List<Vector3>(); generateOtherSide(highway.rightSidewalkSize, terrain); PavementObj = new GameObject("RightPavement" + Pavementid); PavementObj.transform.parent = highway.highwayGameObject.transform; } }
public void updateMesh(Vector3 newVertice, pavementSide side, int verticeIndex) { //Update Pavement Surface Mesh and Stones Mesh MeshFilter SurfaceMeshFilter = PavementObj.transform.Find("PavementSurface").GetComponent <MeshFilter>(); MeshFilter StoneMeshFilter; Vector3[] surfaceMeshV, stoneMeshV; surfaceMeshV = SurfaceMeshFilter.mesh.vertices; if (side == pavementSide.left) { StoneMeshFilter = PavementObj.transform.Find("PavementStonesLeft").GetComponent <MeshFilter>(); stoneMeshV = StoneMeshFilter.mesh.vertices; if (verticeIndex == 0) { surfaceMeshV[0] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); stoneMeshV[0] = newVertice + new Vector3(0, extraHeight, 0); stoneMeshV[1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); } else { surfaceMeshV[surfaceMeshV.Length - 2] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); stoneMeshV[stoneMeshV.Length - 2] = newVertice + new Vector3(0, extraHeight, 0); stoneMeshV[stoneMeshV.Length - 1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); } } else { StoneMeshFilter = PavementObj.transform.Find("PavementStonesRight").GetComponent <MeshFilter>(); stoneMeshV = StoneMeshFilter.mesh.vertices; if (verticeIndex == 1) { surfaceMeshV[1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); stoneMeshV[0] = newVertice + new Vector3(0, extraHeight, 0); stoneMeshV[1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); } else { surfaceMeshV[surfaceMeshV.Length - 1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); stoneMeshV[stoneMeshV.Length - 2] = newVertice + new Vector3(0, extraHeight, 0); stoneMeshV[stoneMeshV.Length - 1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); } } SurfaceMeshFilter.mesh.vertices = surfaceMeshV; StoneMeshFilter.mesh.vertices = stoneMeshV; SurfaceMeshFilter.mesh.RecalculateBounds(); StoneMeshFilter.mesh.RecalculateBounds(); }
public void updateMesh(Vector3 newVertice, pavementSide side, int verticeIndex) { //Update Pavement Surface Mesh and Stones Mesh MeshFilter SurfaceMeshFilter = PavementObj.transform.Find("PavementSurface").GetComponent<MeshFilter>(); MeshFilter StoneMeshFilter; Vector3[] surfaceMeshV, stoneMeshV; surfaceMeshV = SurfaceMeshFilter.mesh.vertices; if(side == pavementSide.left) { StoneMeshFilter = PavementObj.transform.Find("PavementStonesLeft").GetComponent<MeshFilter>(); stoneMeshV = StoneMeshFilter.mesh.vertices; if(verticeIndex == 0) { surfaceMeshV[0] = newVertice + new Vector3(0,extraHeight + stonesHeight,0); stoneMeshV[0] = newVertice + new Vector3(0,extraHeight,0); stoneMeshV[1] = newVertice + new Vector3(0,extraHeight + stonesHeight,0); } else { surfaceMeshV[surfaceMeshV.Length-2] = newVertice + new Vector3(0,extraHeight + stonesHeight,0); stoneMeshV[stoneMeshV.Length-2] = newVertice + new Vector3(0,extraHeight,0); stoneMeshV[stoneMeshV.Length-1] = newVertice + new Vector3(0,extraHeight + stonesHeight,0); } } else { StoneMeshFilter = PavementObj.transform.Find("PavementStonesRight").GetComponent<MeshFilter>(); stoneMeshV = StoneMeshFilter.mesh.vertices; if (verticeIndex == 1) { surfaceMeshV[1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); stoneMeshV[0] = newVertice + new Vector3(0, extraHeight, 0); stoneMeshV[1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); } else { surfaceMeshV[surfaceMeshV.Length - 1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); stoneMeshV[stoneMeshV.Length - 2] = newVertice + new Vector3(0, extraHeight, 0); stoneMeshV[stoneMeshV.Length - 1] = newVertice + new Vector3(0, extraHeight + stonesHeight, 0); } } SurfaceMeshFilter.mesh.vertices = surfaceMeshV; StoneMeshFilter.mesh.vertices = stoneMeshV; SurfaceMeshFilter.mesh.RecalculateBounds(); StoneMeshFilter.mesh.RecalculateBounds(); }
public Pavement(Highway highway, myTerrain terrain, pavementSide _side) { Pavementid = highway.id; side = _side; if (side == pavementSide.left) { rightSideVertexes = new List <Vector3>(highway.leftSideVertexes); leftSideVertexes = new List <Vector3>(); generateOtherSide(highway.leftSidewalkSize, terrain); PavementObj = new GameObject("LeftPavement" + Pavementid); PavementObj.transform.parent = highway.highwayGameObject.transform; } if (side == pavementSide.right) { leftSideVertexes = new List <Vector3>(highway.rightSideVertexes); rightSideVertexes = new List <Vector3>(); generateOtherSide(highway.rightSidewalkSize, terrain); PavementObj = new GameObject("RightPavement" + Pavementid); PavementObj.transform.parent = highway.highwayGameObject.transform; } }