public static UnitCreateOnBuildPanel InstantiateUnitBtn(GameObject gObj, UnitInSquadController unitPrefab, City city, DBTypes.Unit unit) { UnitCreateOnBuildPanel result = gObj.AddComponent <UnitCreateOnBuildPanel>(); result.UPrefab = unitPrefab; result.UCity = city; result.UnitParams = unit; return(result); }
/// <summary> /// Скрипт удалит старый список отображаемых построек и построит новый на основе входных данных /// </summary> /// <param name="AvaiableBuildings">Список доступных построек</param> /// <param name="NotAvaiableBuildings">Список недоступных построек, которые нужно отобразить</param> /// <returns></returns> void UpdateList(UnitInSquadController currentUnit)//List<UnitInSquadController> AvaiableUnits) { //метод должен сработать только для активного окна (только для нужного города) //если gameObject текущего списка не активен, ничего не делать //if (!this.gameObject.activeInHierarchy) // return; //удаляем все, что отображалось до этого if (_DisplayedGameObjectList != null) { foreach (GameObject gObj in _DisplayedGameObjectList) { Destroy(gObj); } _DisplayedGameObjectList.Clear(); } //зачистим список else { _DisplayedGameObjectList = new List <GameObject>(); } if (currentUnit == null)//AvaiableUnits == null) { Debug.Log("На вход UpdateList подан пустой список"); return; }// // var go = Instantiate(unitButton, _content); //go.GetComponent<Image>().sprite = currentUnit.unitIcon;//AvaiableUnits[i].texture; // var buttonScript = go.GetComponent<UnitCreateOnBuildPanel>(); // buttonScript.unitPrefab = currentUnit;//AvaiableUnits[i]; // buttonScript.city = this.city; // _DisplayedGameObjectList.Add(go); //_DisplayedGameObjectList.Add(Instantiate(_testRing.Current, _content)); //} }
public void RecreateUnit(UnitInSquadController unitprest) { // если уже был создан пресет, то оружие надо брать с него if (cityBeh.unit != null) { unit = cityBeh.Unit; } // взяли инфу с базового юнита для этой сцены this.unit.transform.position = new Vector3(-0.2f, 1041, -109); var scaleFactor = this.unit.transform.localScale; var position = this.unit.transform.position; var rotation = this.unit.transform.rotation; Destroy(this.unit.gameObject); // клонируем оружие с префаба юнита для спауна var oldWeaponfromLH = GameObject.Instantiate(unit.leftHand, unit.leftHand.transform.position, unit.leftHand.transform.rotation, unit.leftHand.transform); var oldWeaponfromRH = GameObject.Instantiate(unit.RightHand, unit.RightHand.transform.position, unit.RightHand.transform.rotation, unit.RightHand.transform); oldWeaponfromLH.transform.SetParent(null); oldWeaponfromRH.transform.SetParent(null); oldWeaponfromLH.transform.localScale = new Vector3(oldWeaponfromLH.transform.localScale.x * scaleFactor.x, oldWeaponfromLH.transform.localScale.y * scaleFactor.y, oldWeaponfromLH.transform.localScale.z * scaleFactor.z); oldWeaponfromRH.transform.localScale = new Vector3(oldWeaponfromRH.transform.localScale.x * scaleFactor.x, oldWeaponfromRH.transform.localScale.y * scaleFactor.y, oldWeaponfromRH.transform.localScale.z * scaleFactor.z); unit = Instantiate <UnitInSquadController>(unitprest); unit.gameObject.SetActive(true); unit.transform.position = position; unit.transform.rotation = rotation; if (oldWeaponfromRH != null) { oldWeaponfromRH.transform.SetParent(unit.RightHand.transform.parent); oldWeaponfromRH.transform.position = unit.RightHand.transform.position; oldWeaponfromRH.transform.rotation = unit.RightHand.transform.rotation; } if (oldWeaponfromLH != null && unit.leftHand != null) { oldWeaponfromLH.transform.SetParent(unit.leftHand.transform.parent); oldWeaponfromLH.transform.position = unit.leftHand.transform.position; oldWeaponfromLH.transform.rotation = unit.leftHand.transform.rotation; } if (unit.leftHand != null) { DestroyImmediate(unit.leftHand.gameObject); } if (unit.RightHand != null) { DestroyImmediate(unit.RightHand.gameObject); } unit.leftHand = oldWeaponfromLH; unit.RightHand = oldWeaponfromRH; // изменили префаб юнита для спауна cityBeh.Unit = unit; }
public void ChangeArmor(UnitInSquadController unit) { }