Exemplo n.º 1
0
    public void SaveTest()
    {
        DataBase.Lands       testData = new DataBase.Lands();
        List <DataBase.Land> landList = new List <DataBase.Land>();

        for (int i = 0; i < 5; i++)
        {
            DataBase.Land aa = new DataBase.Land();
            aa.id   = 0100 + i;
            aa.name = "asd" + i;
            // aa.puzzleList_N = new string[6] { "0101", "0102", "0103", "0104", "0105", "0106" };
            // aa.puzzleList_S = new string[3] { "0101", "0103", "0108" };

            landList.Add(aa);
        }
        Debug.Log(landList[0].id);
        testData.lands = landList.ToArray();

        string td = JsonUtility.ToJson(testData);

        Debug.Log(td);

        DataBase.Lands testData2 = JsonUtility.FromJson <DataBase.Lands>(td);
        for (int i = 0; i < testData2.lands.Length; i++)
        {
            Debug.Log(testData2.lands[i].name);
        }


        DirectoryInfo di = new DirectoryInfo(Application.persistentDataPath + "/TestSave");

        if (di.Exists == false)
        {
            di.Create();
        }//폴더 없으면 만듦.

        BinaryFormatter bf = new BinaryFormatter();

        if (System.IO.File.Exists(Application.persistentDataPath + "/TestSave/" + "Test" + ".save"))
        {
            Debug.Log("double");
        }                                                                                                                    //덮어쓸거야?}
        FileStream fs = new FileStream(Application.persistentDataPath + "/TestSave/" + "Test" + ".json", FileMode.Create);

        bf.Serialize(fs, td);
        fs.Close();

        Debug.Log(td);
    }
Exemplo n.º 2
0
    /// <summary>
    /// BaseSetting ( BG, ETC )
    /// </summary>
    public void LandObjectSetting()
    {
        for (int i = 0; i < landList.Count; i++)
        {
            GameObject tempLand = Resources.Load <GameObject>("Prefabs/Lands/Land_Base");

            landObjList.Add(Instantiate(tempLand, Vector3.zero, Quaternion.identity));
            landObjList[i].gameObject.SetActive(true);
            landObjList[i].gameObject.name = (i + 1).ToString();
            landObjList[i].transform.SetParent(transform);
            landObjList[i].GetComponent <LandController>().LandSettingBG(i + 1); // LandSetting( Land ID );
        } // LandObjBase Setting

        if (firstGame == true)
        {
            gotLandObjList.Add(landObjList[0]);
            gotLandObjList.Add(landObjList[1]);

            UserManager.Instance.AddGotland(1);
            UserManager.Instance.AddGotland(2);

            UserManager.Instance.currentUser.name = "test";//local ID 만들어서 넣어야함.

            currentLand = landList[0];
            PuzzleManager.instance.currentLandObj = gotLandObjList[0]; //currentLandObj등록
        } // first면 처음 만드는거.
        else
        {
            Debug.Log("non first");
            gotLandObjList.Clear();
            for (int i = 0; i < UserManager.Instance.currentUser.gotLandList.Count; i++)
            {
                gotLandObjList.Add(landObjList[i]);
            }// gotLandObjList갱신.

            currentLand = landList[UserManager.Instance.currentUser.lastLand - 1];
            PuzzleManager.instance.currentLandObj = landObjList[currentLand.id - 1];

            //CurrentLandSetting(false);  //after clear
        } // first가 아니면 currentLand 불러오기. + Land Setting.
        //Destroy(tempLand);
        SelectLandOnly(currentLand.id);
        //Debug.Log("gotLandCount : "+UserManager.Instance.currentUser.gotLandList.Count);
    }
Exemplo n.º 3
0
    }         //Canvas + Camera + PuzzleIcon + unit

    #endregion

    public void LandChange(string dir)
    {
        //Debug.Log("Try_LandChange");
        int landNum = currentLand.id;

        if (dir == "R" || dir == "r")
        {
            landNum++;
        }
        else if (dir == "L" || dir == "l")
        {
            landNum--;
        }
        if (landNum <= landObjList.Count && landNum > 0)
        {
            currentLand = landList[landNum - 1];
            SelectLandOnly(landNum);
        }
    }
Exemplo n.º 4
0
    /// <summary>
    /// 0: ID, 1:Name, 2:Size, 3:UseSpriteNum_Min, 4: UseSpriteNum_Max, 5: Type(N or S)
    /// LoadPuzzles 보다 먼저 실행.
    /// </summary>
    IEnumerator LoadLands()
    {
        loadAll = false;
        Debug.Log("tryLoadLand");

        float time = 0;

        while (time < 3f)
        {
            if (NetworkConnectionChecker.instance.success == true)
            {
                List <DataBase.Land> tempLandList = new List <DataBase.Land>();
                #region LoadLandDB_Firebase
                FirebaseDatabase.DefaultInstance.GetReference("Lands").GetValueAsync().ContinueWith
                (
                    task =>
                {
                    if (task.IsFaulted)
                    {
                        Debug.Log("Land, Handle the error");
                        // Handle the error...
                    }
                    else if (task.IsCompleted && loadLand == false)
                    {
                        //Debug.Log("Land, TaskComplite");
                        DataSnapshot snapshot = task.Result;

                        for (int i = 1; i < snapshot.ChildrenCount; i++)
                        {
                            DataBase.Land tempLand = new DataBase.Land();
                            string i_            = i.ToString();                                                  //'Lands'DB 용 ID.
                            tempLand.id          = Convert.ToInt32(snapshot.Child(i_).Child("0").GetValue(true)); //snapShot에서 Land ID가져오기.
                            tempLand.name        = snapshot.Child(i_).Child("1").GetValue(true).ToString();
                            tempLand.price       = Convert.ToInt32(snapshot.Child(i_).Child("7").GetValue(true));
                            string puzzleIDFront = tempLand.id < 10 ? "0" + tempLand.id : tempLand.id.ToString();

                            #region puzzleList_S
                            List <string> skillNum = new List <string>();
                            for (int j = 0; j < 4; j++)
                            {
                                int tempj = 3 + j;

                                string spNum = snapshot.Child(i_).Child(tempj.ToString()).GetValue(true).ToString();
                                if (spNum != "0")
                                {
                                    spNum = System.Convert.ToInt32(spNum) < 10 ? "0" + spNum : spNum;
                                    skillNum.Add(spNum);    //skillPuzzleID_Back
                                }
                            }
                            tempLand.puzzleList_S = new List <string>();
                            for (int j = 0; j < skillNum.Count; j++)
                            {
                                tempLand.puzzleList_S.Add(puzzleIDFront + skillNum[j]); //skillPuzzleID_All
                            }
                            #endregion                                                  //skill Puzzle 만 모아놓기

                            #region puzzleList_N
                            List <string> normalIDList = new List <string>();
                            //tempLand.puzzleList_N = new string[System.Convert.ToInt32(snapshot.Child(i_).Child("2").GetValue(true))];
                            for (int j = 0; j < System.Convert.ToInt32(snapshot.Child(i_).Child("2").GetValue(true)); j++)
                            {
                                int sameCnt         = 0;
                                int max             = j + 1;
                                string puzzleIDBack = max < 10 ? "0" + max : max.ToString();
                                foreach (string x in skillNum)
                                {
                                    if (x == puzzleIDBack)
                                    {
                                        sameCnt++;
                                    }
                                }
                                if (sameCnt == 0)
                                {
                                    string normalID = puzzleIDFront + puzzleIDBack;
                                    normalIDList.Add(normalID);
                                }
                            }
                            tempLand.puzzleList_N = new List <string>();
                            for (int j = 0; j < normalIDList.Count; j++)
                            {
                                tempLand.puzzleList_N.Add(normalIDList[j]);
                            }
                            #endregion // 모아놓은 skill puzzle을 제외한 normal puzzle만 모아놓기.


                            tempLandList.Add(tempLand);
                        }
                        LandManager.instance.landList = new List <DataBase.Land>();
                        LandManager.instance.landList = tempLandList;
                        loadLand = true; Debug.Log("land_True");
                    }
                }
                );
                #endregion
            }
            else
            {
                loadLand = true;
                //읽씹.
            }
            yield return(new WaitForSeconds(0.02f));

            time += 0.02f;
        }
    }//After Check That Internet Connection.