Exemple #1
0
    void CreateUnit()
    {
        // 유닛 생성
        for (int i = 0; i < PlayData.listUnitInfos.Count; i++)
        {
            var info = PlayData.listUnitInfos[i];

            YBEnum.eUnitName  eUnitName = UnitName.ParseToEnum(info.unit_name);
            YBEnum.eColorType colorType = (YBEnum.eColorType)info.color;
            Vector2           pos       = new Vector2(info.x, info.y);

            Unit unit = UnitsPool.instance.CreateUnit(eUnitName, colorType, pos);
            unit.transform.parent = unitsTr;

            var trModel = unit.transform.Find("Model").transform;

            // 왼쪽이 0
            int dir = (0 - unit.transform.position.x < 0) ? 0 : 1;
            if (unit.status.name.CompareTo("Catapult") == 0)
            {
                dir = (0 - unit.transform.position.x < 0) ? 1 : 0;
            }

            trModel.rotation = Quaternion.Euler(new Vector3(0, 180 * dir, 0));

            listEnemies.Add(unit);
        }
    }
Exemple #2
0
    private void Update()
    {
        bool left  = Input.GetMouseButtonDown(0);
        bool right = Input.GetMouseButtonDown(1);

        if ((left || right) && !EventSystem.current.IsPointerOverGameObject())
        {
            Ray        inputRay = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(inputRay, out hit))
            {
                YBEnum.eColorType colorType = YBEnum.eColorType.None;

                if (left)
                {
                    colorType = YBEnum.eColorType.Yellow;
                }
                if (right)
                {
                    colorType = YBEnum.eColorType.Green;
                }

                Toggle toggle = toggles.Find(t => t.isOn);
                if (toggle == null)
                {
                    return;
                }

                YBEnum.eUnitName strToEnum = UnitName.ParseToEnum(toggle.name);
                listUnit.Add(UnitsPool.instance.CreateUnit(strToEnum, colorType, hit.point));
            }
        }
    }
Exemple #3
0
    void Summon()
    {
        YBEnum.eColorType color = UnitColor.PaseToEnum(sc.tag.ToString());

        // 소환을 한다.
        UnitsPool.instance.SummonMinion(sc.tag, sc.Position);
        UnitsPool.instance.SummonMinion(sc.tag, sc.Position);
        UnitsPool.instance.SummonMinion(sc.tag, sc.Position);
    }
Exemple #4
0
    public static YBEnum.eColorType GetEnemyColorType(YBEnum.eColorType colorType)
    {
        switch (colorType)
        {
        case YBEnum.eColorType.Yellow:
            return(YBEnum.eColorType.Green);

        case YBEnum.eColorType.Green:
            return(YBEnum.eColorType.Green);
        }

        return(YBEnum.eColorType.None);
    }
Exemple #5
0
    public Unit CreateUnit(YBEnum.eUnitName unitName, YBEnum.eColorType colorType, Vector2 position)
    {
        // 유닛 프리펩과 모델을 가져온다.
        GameObject unitPrefab  = PrefabsManager.GetInstance().GetUnitPrefab(unitName);
        GameObject modelPrefab = PrefabsManager.GetInstance().GetModelPrefab(unitName, colorType);

        // 유닛을 생성한다.
        GameObject unitGo = Instantiate(unitPrefab, Vector3.zero, Quaternion.identity);

        // 모델을 생성한다.
        // 이름을 모델로 변경한다.
        // 트랜스폼을 조정한다.
        GameObject modelGo = Instantiate(modelPrefab);

        modelGo.name             = "Model";
        modelGo.transform.parent = unitGo.transform;

        // 유닛의 위치를 변경한다.
        unitGo.transform.position = position;

        // 유닛의 태그를 설정한다.
        unitGo.tag = colorType.ToString();

        // 유닛 정보를 초기화 한다.
        Unit unit = unitGo.GetComponent <Unit>();

        if (unit.status == null)
        {
            UnitData data = DataManager.GetInstance().GetUnitData(unitName.ToString());

            // 유닛 데이터를 복사해서 생성한다.
            unit.status = new UnitData(data);
        }

        return(unit);
    }
Exemple #6
0
    public GameObject GetModelPrefab(YBEnum.eUnitName name, YBEnum.eColorType colorType)
    {
        string newName = string.Format("{0}_{1}", name.ToString(), colorType.ToString());

        return(dicModelPrefabs[newName]);
    }
Exemple #7
0
    public static int PaseToInt(string str)
    {
        YBEnum.eColorType unitType = (YBEnum.eColorType)Enum.Parse(typeof(YBEnum.eColorType), str);

        return((int)unitType);
    }
Exemple #8
0
    public static YBEnum.eColorType PaseToEnum(string str)
    {
        YBEnum.eColorType unitType = (YBEnum.eColorType)Enum.Parse(typeof(YBEnum.eColorType), str);

        return(unitType);
    }