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);
    }
예제 #2
0
    /// <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)
 {
 }