void RenewalTowerInfoOutput(TowerObjectInformation towerInfo, Vector2 position) { towerInfoOutput.SetActive(true); towerInfoOutput.transform.Find("타워이미지").GetComponent <Image>().sprite = gm.LoadImageToSprite(towerInfo.towerImagePath); towerInfoOutput.transform.Find("투사체이미지").GetComponent <Image>().sprite = gm.LoadImageToSprite(towerInfo.projectileImagePath); towerInfoOutput.transform.Find("공격력수치표기공간").GetComponent <Text>().text = towerInfo.attackDamage.ToString(); towerInfoOutput.transform.Find("공격속도수치표기공간").GetComponent <Text>().text = towerInfo.attackSpeed.ToString(); towerInfoOutput.transform.Find("비용수치표기공간").GetComponent <Text>().text = towerInfo.cost.ToString(); towerInfoOutput.transform.Find("타워이름").GetComponent <Text>().text = towerInfo.towerObjectName; RectTransform tempTIOP = towerInfoOutput.GetComponent <RectTransform>(); Vector2 targetPos = position; //if(targetPos.x > 650) // targetPos.x = 650; //if(targetPos.x < -650) // targetPos.x = -650; //if (targetPos.y > 274) // targetPos.y = 274; //if (targetPos.y < -274) // targetPos.y = -274; tempTIOP.position = targetPos; StartCoroutine(HideTowerInforationByTime()); }
public void CreatingTower() { if (!Directory.Exists(Application.persistentDataPath + GameManager.gameManager.towerObjectPath)) { Directory.CreateDirectory(Application.persistentDataPath + GameManager.gameManager.towerObjectPath); } if (currentSelectedTowerImagePath != null && currentSelectedProjectileImagePath != null) { TowerObjectInformation towerInfo = new TowerObjectInformation(); //타워 오브젝트 폴더 지정 DirectoryInfo di = new DirectoryInfo(Application.persistentDataPath + GameManager.gameManager.towerObjectPath); int nextFolderIndex = 0; while (true) { DirectoryInfo tempDi = new DirectoryInfo(di.ToString() + "/" + nextFolderIndex); if (tempDi.Exists) { nextFolderIndex++; } else { break; } } //int nextFolderIndex = Directory.GetDirectories(Application.persistentDataPath + GameManager.gameManager.towerObjectPath, "*", SearchOption.TopDirectoryOnly).Length; string nextFolderPath = Application.persistentDataPath + GameManager.gameManager.towerObjectPath + "/" + nextFolderIndex; Directory.CreateDirectory(nextFolderPath); Directory.CreateDirectory(nextFolderPath + "/타워이미지"); Directory.CreateDirectory(nextFolderPath + "/투사체이미지"); Directory.CreateDirectory(nextFolderPath + "/타워정보"); string towerObjTowerImagePath = Path.Combine(nextFolderPath + "/타워이미지", currentSelectedTowerImageName + ".png"); string towerobjProjectileImagePath = Path.Combine(nextFolderPath + "/투사체이미지", currentSelectedProjectileImageName + ".png"); File.Copy(currentSelectedTowerImagePath, towerObjTowerImagePath); File.Copy(currentSelectedProjectileImagePath, towerobjProjectileImagePath); towerInfo.towerImagePath = towerObjTowerImagePath; towerInfo.projectileImagePath = towerobjProjectileImagePath; towerInfo.towerObjectName = currentSelectedTowerImageName; towerInfo.projectileName = currentSelectedProjectileImageName; towerInfo.attackDamage = int.Parse(statusUi.attackDamage.text); towerInfo.attackSpeed = int.Parse(statusUi.attackSpeed.text); towerInfo.cost = int.Parse(statusUi.cost.text); towerInfo.index = nextFolderIndex; towerInfo.isTrue = true; string filePath = nextFolderPath + "/타워정보/status.json"; towerInfo.thisFilePath = filePath; string toJsonData = JsonUtility.ToJson(towerInfo); File.WriteAllText(filePath, toJsonData); GameManager.gameManager.ShowGuideMessage("타워 객체가 생성되었습니다"); } else { GameManager.gameManager.ShowGuideMessage("타워와 투사체를 선택해주세요"); } }
void ClickTowerObjList() { RectTransform clickedButtonTr = EventSystem.current.currentSelectedGameObject.GetComponent <RectTransform>(); TowerObjectInformation clickedTowerInfo = EventSystem.current.currentSelectedGameObject.GetComponent <TowerObject>().towerObjInfo; RenewalTowerInfoOutput(clickedTowerInfo, new Vector2(clickedButtonTr.position.x, clickedButtonTr.position.y)); }
public void OnEndDrag(PointerEventData eventData) { if (towerObjInfo.isTrue) { float dragDistance = (dragingImage.GetComponent <RectTransform>().position - GetComponent <RectTransform>().position).sqrMagnitude; if (dragDistance > 1500) { gm.towerObjInfos[index] = null; towerObjInfo = null; GetComponent <Image>().sprite = tm.towerSocketImage; } Destroy(dragingImage); } }
public void LoadTowerObjectList(string folderPath, List <TowerObjectInformation> objectList) { DirectoryInfo di = new DirectoryInfo(folderPath); TowerObjectInformation instance = new TowerObjectInformation(); if (!Directory.Exists(Application.persistentDataPath + GameManager.gameManager.towerObjectPath)) { Debug.Log("오류! 폴더가 존재하지 않습니다"); } else { for (int i = 0; i < di.GetDirectories().Length; i++) { string fromJsonData = File.ReadAllText(di.GetDirectories()[i] + "/타워정보/status.json"); objectList.Add(JsonUtility.FromJson <TowerObjectInformation>(fromJsonData)); } } }
void Start() { player = this; gm = GameManager.gameManager; //맵 로드 map = Instantiate(gm.currentMap); StartCoroutine(RisingOfGoldResources()); life = map.playerLife; goldResources = map.stageInfos.startGold; currentTowerInfo = null; //타워소켓에 선택한 타워들 동기화 for (int i = 0; i < towerSocket.Length; i++) { TowerSocket_Play tempTowerSocket = towerSocket[i].GetComponent <TowerSocket_Play>(); tempTowerSocket.towerObjInfo = gm.towerObjInfos[i]; tempTowerSocket.GetComponent <Image>().sprite = gm.LoadImageToSprite(tempTowerSocket.towerObjInfo.towerImagePath); towerSocket[i].onClick.AddListener(ClickTowerSocket); } }
public void ClickTowerSocket() { currentTowerInfo = EventSystem.current.currentSelectedGameObject.GetComponent <TowerSocket_Play>().towerObjInfo; }