Beispiel #1
0
	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
	}
Beispiel #2
0
	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
	}
Beispiel #3
0
	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
	}
Beispiel #4
0
	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
	}