private void addOneMoneyAtMarker(Transform marker, Transform inparent, TerrainTag interrainTag) { GameObject newObject; newObject = moneyElementFactory.GetNewObject(); //set position & rotation newObject.transform.position = marker.position; MarkerTag markerTag = newObject.GetComponent <MarkerTag>(); if (markerTag) { markerTag.ApplyRotation(marker.rotation, interrainTag.singleTransform.rotation); } else { newObject.transform.rotation = marker.rotation; } if (interrainTag) { interrainTag.PushToAllElements(newObject.GetComponent <AbstractTag>()); } if (!MakeObstacleSet) { newObject.transform.parent = inparent; } }
private void addOneUniqueAtMarker(Transform marker, TerrainTag interrainTag) { GameObject newObject; newObject = uniqueElementFactory.GetNewObjectWithName(marker.name); if (!newObject) { Debug.Log("Object Not Found - " + marker.name); return; } //set position & rotation newObject.transform.position = marker.position; MarkerTag markerTag = newObject.GetComponent <MarkerTag>(); if (markerTag) { markerTag.ApplyRotation(marker.rotation, interrainTag.singleTransform.rotation); } else { newObject.transform.rotation = marker.rotation; } if (interrainTag) { interrainTag.PushToAllElements(newObject.GetComponent <AbstractTag>()); } if (MakeTerrains) { GameObject vspObject; vspObject = new GameObject(); Transform vspTerrain = vspObject.transform; vspTerrain.parent = marker.parent; vspTerrain.position = marker.position; vspTerrain.rotation = marker.rotation; marker.parent = null; vspTerrain.name = marker.name; } }
private void addOneTreeAtMarker(Transform marker, TerrainTag interrainTag) { int i; GameObject newObject; AbstractElementFactory treeElementFactory = null; //findTreeFactory for (i = 0; i < treeElementFactories.Count; i++) { //нашли if ((treeElementFactories[i] as GameObject).name == interrainTag.treeElementFactory.name) { treeElementFactory = (treeElementFactories[i] as GameObject).GetComponent <AbstractElementFactory>(); break; } } if (!treeElementFactory) { GameObject newTreeFactory; newTreeFactory = Instantiate(interrainTag.treeElementFactory) as GameObject; treeElementFactories.Add(newTreeFactory); newTreeFactory.name = interrainTag.treeElementFactory.name; treeElementFactory = newTreeFactory.GetComponent <AbstractElementFactory>(); } newObject = treeElementFactory.GetNewObject(); //set position & rotation newObject.transform.position = marker.position; MarkerTag marderTag = newObject.GetComponent <MarkerTag>(); if (marderTag) { marderTag.ApplyRotation(marker.rotation, interrainTag.singleTransform.rotation); } else { newObject.transform.rotation = marker.rotation; } if (interrainTag) { interrainTag.PushToAllElements(newObject.GetComponent <AbstractTag>()); } if (MakeTerrains) { GameObject vspObject; vspObject = new GameObject(); Transform vspTerrain = vspObject.transform; vspTerrain.parent = marker.parent; vspTerrain.position = marker.position; vspTerrain.rotation = marker.rotation; marker.parent = null; vspTerrain.name = marker.name; } }
private IEnumerator addOneObstacleFromSetAtMarker(Transform marker, Transform inparent, TerrainTag interrainTag, int recursion, bool FlagCoRoutine) { GameObject newObject, vspObject; bool flagCompiled = false; newObject = obstacleElementFactory.GetNewObjectWithName(marker.name); if (!newObject) { //Debug.Log (marker.name+" NOT FOUND!!!"); if (FlagCoRoutine) { yield return(null); } } //set position & rotation newObject.transform.position = marker.position; MarkerTag markerTag = newObject.GetComponent <MarkerTag>(); if (markerTag) { markerTag.ApplyRotation(marker.rotation, interrainTag.singleTransform.rotation); } else { newObject.transform.rotation = marker.rotation; } if (interrainTag) { interrainTag.PushToAllElements(newObject.GetComponent <AbstractTag>()); } if (marker.name == "TochkaSbora") { fermaMissionEmmiter.AddMissionEmmitterListener(newObject.GetComponentInChildren <TochkaSbora>()); if (fermaMissionEmmiter.GetCurrentMissions().Count == 0) { newObject.GetComponentInChildren <AbstractEnemy>().MakeInactiveParent(); } } //if compiled object if (marker.name.Contains("Compiled")) { flagCompiled = true; int j; //ищем контейнер Transform Container; Transform Container2; Container = marker.transform.FindChild("ContainerOfObjects"); if (MakeObstacleSet) { vspObject = new GameObject(); Container2 = vspObject.transform; Container2.parent = Container.parent; Container2.position = Container.position; Container2.rotation = Container.rotation; Container2.name = Container.name; } else { Container2 = newObject.transform.FindChild("ContainerOfObjects"); } if (Container) { Transform[] allChildren = Container.gameObject.GetComponentsInChildren <Transform>(); //обрабатываем все трансформы for (j = 1; j < allChildren.Length; j++) { //bug with NUULLS if (allChildren[j].name == "money") { addOneMoneyAtMarker(allChildren[j], Container2, interrainTag); continue; } if (allChildren[j].name == "boost") { addOneBoostAtMarker(allChildren[j], Container2, interrainTag); continue; } //reqursively if (FlagCoRoutine) { yield return(null); } StartCoroutine(addOneObstacleFromSetAtMarker(allChildren[j], Container2, interrainTag, recursion + 1, FlagCoRoutine)); } if (MakeObstacleSet) { DestroyImmediate(Container.gameObject); } } } if (MakeObstacleSet) { vspObject = new GameObject(); if (marker.name == "MonetaContainer") { vspObject.name = "money"; } else if (marker.name == "VodkaContainer" || marker.name == "MagnitContainer" || marker.name == "PostalContainer" || marker.name == "KopilkaContainer") { vspObject.name = "boost"; } else { vspObject.name = marker.name; } vspObject.transform.position = marker.position; vspObject.transform.rotation = marker.rotation; vspObject.transform.parent = inparent; if (recursion == 0 && !flagCompiled) { DestroyImmediate(marker.gameObject); } if (recursion == 0 && flagCompiled) { Transform Container = marker.transform.FindChild("ContainerOfObjects"); Container.parent = vspObject.transform; DestroyImmediate(marker.gameObject); } } else { newObject.transform.parent = inparent; } if (FlagCoRoutine) { yield return(null); } }