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); } }
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)); } } }
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); }
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); }
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); }
public GameObject GetModelPrefab(YBEnum.eUnitName name, YBEnum.eColorType colorType) { string newName = string.Format("{0}_{1}", name.ToString(), colorType.ToString()); return(dicModelPrefabs[newName]); }
public static int PaseToInt(string str) { YBEnum.eColorType unitType = (YBEnum.eColorType)Enum.Parse(typeof(YBEnum.eColorType), str); return((int)unitType); }
public static YBEnum.eColorType PaseToEnum(string str) { YBEnum.eColorType unitType = (YBEnum.eColorType)Enum.Parse(typeof(YBEnum.eColorType), str); return(unitType); }