void CreateRailLandAsset(){ #if UNITY_EDITOR AssetDatabase.DeleteAsset(pathFolder+"/Rail"); AssetDatabase.CreateFolder(pathFolder, "Rail"); GameObject railPacked = new GameObject("RailPacked"); int mX = xMinEffectiveBoard; while(mX <= xMaxEffectiveBoard){ GameObject nRail = Instantiate(rail, Vector3.zero, Quaternion.identity)as GameObject; nRail.transform.position = new Vector3(mX, 0, 0); nRail.transform.SetParent(railPacked.transform); mX++; } mX = xMinBoard; while(mX < xMinEffectiveBoard){ GameObject nRail = Instantiate(deepRail, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(railPacked.transform); mX++; } mX = xMaxEffectiveBoard+1; while(mX <= xMaxBoard){ GameObject nRail = Instantiate(deepRail, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(railPacked.transform); mX++; } railPacked.tag = "Rail"; MeshCombine.CreatePrefab(railPacked, pathFolder, "Rail", "Rail"); Destroy(railPacked); #endif }
void CreateGrassLandAsset(){ #if UNITY_EDITOR AssetDatabase.DeleteAsset(pathFolder+"/Grass"); AssetDatabase.CreateFolder(pathFolder, "Grass"); GameObject grassPacked = new GameObject("GrassPacked"); int xGrass = xMinEffectiveBoard; while(xGrass <= xMaxEffectiveBoard){ GameObject nGrass = Instantiate(grass, Vector3.zero, Quaternion.identity)as GameObject; nGrass.transform.position = new Vector3(xGrass, 0, 0); nGrass.transform.SetParent(grassPacked.transform); xGrass++; } xGrass = xMinBoard; while(xGrass < xMinEffectiveBoard){ GameObject nDGrass = Instantiate(deepGrass, Vector3.zero, Quaternion.identity) as GameObject; nDGrass.transform.position = new Vector3(xGrass, 0,0); nDGrass.transform.SetParent(grassPacked.transform); if(tree.Length == 0){ Debug.LogError("Tree Array is Null, make sure you have assign it"); EditorApplication.isPaused = true; } else{ GameObject nTree = Instantiate(tree[UnityEngine.Random.Range(0, tree.Length)],new Vector3(xGrass, 0,0), Quaternion.identity)as GameObject; nTree.transform.SetParent(grassPacked.transform); } xGrass++; } xGrass = xMaxEffectiveBoard+1; while(xGrass <= xMaxBoard){ GameObject nDGrass = Instantiate(deepGrass, Vector3.zero, Quaternion.identity) as GameObject; nDGrass.transform.position = new Vector3(xGrass, 0,0); nDGrass.transform.SetParent(grassPacked.transform); GameObject nTree = Instantiate(tree[UnityEngine.Random.Range(0, tree.Length)],new Vector3(xGrass, 0,0), Quaternion.identity)as GameObject; nTree.transform.SetParent(grassPacked.transform); xGrass++; } grassPacked.tag = "Grass"; MeshCombine.CreatePrefab(grassPacked, pathFolder, "Grass", "Grass"); Destroy(grassPacked); #endif }
void CreateTrain(){ #if UNITY_EDITOR AssetDatabase.DeleteAsset(pathFolder+"/"+"Train"); AssetDatabase.CreateFolder(pathFolder, "Train"); int longTrain = minLongTrain; while(longTrain <= maxLongTrain){ float trainWidth; GameObject realTrainInstance = new GameObject("TrainLong_"+longTrain.ToString()); GameObject trainDummy = Instantiate(carriage, new Vector3(-300, -300, -300), Quaternion.identity) as GameObject; trainWidth = trainDummy.transform.GetChild(0).GetComponent<MeshRenderer>().bounds.size.x; Destroy(trainDummy); GameObject headTr = Instantiate(headTrain, transform.position, Quaternion.identity) as GameObject; int i =0; while(i < longTrain){ GameObject trainInstance = Instantiate(carriage, new Vector3(transform.position.x - (i * trainWidth), transform.position.y, transform.position.z), Quaternion.identity) as GameObject; trainInstance.transform.SetParent(headTr.transform); i++; } realTrainInstance.transform.position = transform.position; headTr.transform.SetParent(realTrainInstance.transform); MeshCombine.CreatePrefab(realTrainInstance, pathFolder, "Train", "Train"); // //This so heavy // UnityEngine.Object dummyPrefab = EditorUtility.CreateEmptyPrefab("Assets/CrossyWay/Prefabs/Train/TrainComplete/RealTrain_"+longTrain.ToString()+".prefab"); // GameObject prefabTrain = PrefabUtility.ReplacePrefab(realTrainInstance, dummyPrefab, ReplacePrefabOptions.ConnectToPrefab) as GameObject; // prefabTrain.tag = "Train"; // //Heavy part end Destroy(realTrainInstance); longTrain++; } #endif }
void CreateRoadLandAsset(){ #if UNITY_EDITOR AssetDatabase.DeleteAsset(pathFolder+"/Road"); AssetDatabase.CreateFolder(pathFolder, "Road"); GameObject solidRoadPacked = new GameObject("SolidRoadPacked"); int mX = xMinEffectiveBoard; while(mX <= xMaxEffectiveBoard){ GameObject nRail = Instantiate(road, Vector3.zero, Quaternion.identity)as GameObject; nRail.transform.position = new Vector3(mX, 0, 0); nRail.transform.SetParent(solidRoadPacked.transform); mX++; } mX = xMinBoard; while(mX < xMinEffectiveBoard){ GameObject nRail = Instantiate(deepRoad, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(solidRoadPacked.transform); mX++; } mX = xMaxEffectiveBoard+1; while(mX <= xMaxBoard){ GameObject nRail = Instantiate(deepRoad, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(solidRoadPacked.transform); mX++; } MeshCombine.CreatePrefab(solidRoadPacked, pathFolder, "Road", "SolidRoad"); Destroy(solidRoadPacked); //BREAK ========================================================= GameObject roadTopLinePacked = new GameObject("roadTopLinePacked"); mX = xMinEffectiveBoard; while(mX <= xMaxEffectiveBoard){ GameObject nRoad; if(mX % 2 == 0){ nRoad = Instantiate(roadTopLine, Vector3.zero, Quaternion.identity)as GameObject; } else nRoad = Instantiate(road, Vector3.zero, Quaternion.identity)as GameObject; nRoad.transform.position = new Vector3(mX, 0, 0); nRoad.transform.SetParent(roadTopLinePacked.transform); mX++; } mX = xMinBoard; while(mX < xMinEffectiveBoard){ GameObject nRail = Instantiate(deepRoad, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(roadTopLinePacked.transform); mX++; } mX = xMaxEffectiveBoard+1; while(mX <= xMaxBoard){ GameObject nRail = Instantiate(deepRoad, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(roadTopLinePacked.transform); mX++; } MeshCombine.CreatePrefab(roadTopLinePacked, pathFolder, "Road", "RoadTopLine"); Destroy(roadTopLinePacked); //BREAK ========================================================= GameObject roadBothLinePacked = new GameObject("roadBothLinePacked"); mX = xMinEffectiveBoard; while(mX <= xMaxEffectiveBoard){ GameObject nRoad; if(mX % 2 == 0){ nRoad = Instantiate(roadBothLine, Vector3.zero, Quaternion.identity)as GameObject; } else nRoad = Instantiate(road, Vector3.zero, Quaternion.identity)as GameObject; nRoad.transform.position = new Vector3(mX, 0, 0); nRoad.transform.SetParent(roadBothLinePacked.transform); mX++; } mX = xMinBoard; while(mX < xMinEffectiveBoard){ GameObject nRail = Instantiate(deepRoad, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(roadBothLinePacked.transform); mX++; } mX = xMaxEffectiveBoard+1; while(mX <= xMaxBoard){ GameObject nRail = Instantiate(deepRoad, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(roadBothLinePacked.transform); mX++; } MeshCombine.CreatePrefab(roadBothLinePacked, pathFolder, "Road", "RoadBothLine"); Destroy(roadBothLinePacked); //BREAK ========================================================= GameObject roadBottomLinePacked = new GameObject("roadBottomLinePacked"); mX = xMinEffectiveBoard; while(mX <= xMaxEffectiveBoard){ GameObject nRoad; if(mX % 2 == 0){ nRoad = Instantiate(roadBottomLine, Vector3.zero, Quaternion.identity)as GameObject; } else nRoad = Instantiate(road, Vector3.zero, Quaternion.identity)as GameObject; nRoad.transform.position = new Vector3(mX, 0, 0); nRoad.transform.SetParent(roadBottomLinePacked.transform); mX++; } mX = xMinBoard; while(mX < xMinEffectiveBoard){ GameObject nRail = Instantiate(deepRoad, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(roadBottomLinePacked.transform); mX++; } mX = xMaxEffectiveBoard+1; while(mX <= xMaxBoard){ GameObject nRail = Instantiate(deepRoad, Vector3.zero, Quaternion.identity) as GameObject; nRail.transform.position = new Vector3(mX, 0,0); nRail.transform.SetParent(roadBottomLinePacked.transform); mX++; } MeshCombine.CreatePrefab(roadBottomLinePacked, pathFolder, "Road", "RoadBottomLine"); Destroy(roadBottomLinePacked); #endif }