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));
    }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
    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));
            }
        }
    }
Ejemplo n.º 6
0
    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);
        }
    }
Ejemplo n.º 7
0
 public void ClickTowerSocket()
 {
     currentTowerInfo = EventSystem.current.currentSelectedGameObject.GetComponent <TowerSocket_Play>().towerObjInfo;
 }