//======================================================================= public static AllUsersSaveData getAllUsersSaveData() { //adAllText(GameConstants.PATH_TO_USERS_SAVEDATA)); //StreamReader strRead = new StreamReader( PathUtil.GetDocumentFilePath(GameConstants.PATH_TO_USERS_SAVEDATA) ); //string json = strRead.ReadToEnd(); //strRead.Close(); //AllUsersSaveData saveData = JsonUtility.FromJson<AllUsersSaveData>(json); AllUsersSaveData saveData; string fname = PathUtil.GetDocumentFilePath(GameConstants.PATH_TO_USERS_SAVEDATA); string json = ""; if (File.Exists(fname)) { json = File.ReadAllText(fname); } //GameObject.Find("txt_dbg").GetComponent<Text>().text = "json=" + json + json.Length.ToString(); if (json.Length > 0) { saveData = JsonUtility.FromJson <AllUsersSaveData>(json); } else { saveData = new AllUsersSaveData(); } return(saveData); }
//======================================================================= // сохранить данные текущего юзера (перезапись/вставка в файл сохранений) public static bool SaveUserData(OneUserSaveData user) { if ((user == null) || string.IsNullOrEmpty(user.name)) { return(false); } AllUsersSaveData saveData = getAllUsersSaveData(); bool is_exists = false; if (saveData.arUsers.Length > 0) { //поиск юзера в массиве юзеров for (int i = 0; i < saveData.arUsers.Length; i++) { if (user.name == saveData.arUsers[i].name) { saveData.arUsers[i] = user; is_exists = true; } } } if (!is_exists) { //добавление юзера, если такого нету List <OneUserSaveData> aUsers = new List <OneUserSaveData>(saveData.arUsers); aUsers.Add(user); saveData.arUsers = aUsers.ToArray(); } saveData.curUserName = user.name; File.WriteAllText(PathUtil.GetDocumentFilePath(GameConstants.PATH_TO_USERS_SAVEDATA), JsonUtility.ToJson(saveData)); return(true); }
//======================================================================= //получить данные юзера по его имени (возвращает объект юзера или null) public static OneUserSaveData GetUserSaveData_byName(string user_name) { AllUsersSaveData saveData = getAllUsersSaveData(); if ((saveData != null) && !string.IsNullOrEmpty(user_name)) { foreach (OneUserSaveData user in saveData.arUsers) { if (user_name == user.name) { return(user); } } } return(null); }
//======================================================================= //получить данные текущего юзера по его имени (возвращает объект юзера или null) public static OneUserSaveData GetCurUserSaveData() { AllUsersSaveData saveData = getAllUsersSaveData(); if (saveData != null) { if (string.IsNullOrEmpty(saveData.curUserName)) { return(null); } foreach (OneUserSaveData user in saveData.arUsers) { if (saveData.curUserName == user.name) { return(user); } } } return(null); }
//******************************************************** public void Reload_AllUsersData() { allUsers = myUtils.getAllUsersSaveData(); arUsers = new List <OneUserSaveData>(); // allUsers.arUsers if (allUsers.arUsers != null) { for (int i = 0; i < allUsers.arUsers.Length; i++) { arUsers.Add(allUsers.arUsers[i]); } } myUtils.console_log(arUsers); GameObject itemsArea = GameObject.FindGameObjectWithTag("users_list"); if (itemsArea.GetComponentsInChildren <Button>().Length > 0) { Button[] btns = itemsArea.GetComponentsInChildren <Button>(); foreach (Button b in btns) { //myUtils.console_log("free btn " + b.name); //Destroy(b.GetComponentInParent<GameObject>()); b.onClick = null; Destroy(b.gameObject); } } foreach (OneUserSaveData user in arUsers) { //GameObject btn = new GameObject(); GameObject btn = (GameObject)Instantiate(Resources.Load(GameConstants.PREFAB_BTN_USER_NAME)); btn.transform.SetParent(itemsArea.transform); string name = user.name; // "Вася" + i.ToString(); btn.name = name; btn.GetComponentInChildren <TMP_Text>().text = name; btn.GetComponent <Button>().onClick.AddListener(delegate { Select_User_inList(name); }); } //Select_User_inList(GetInputName()); }
//======================================================================= public static void saveAllUsersSaveData(AllUsersSaveData saveData) { string fname = PathUtil.GetDocumentFilePath(GameConstants.PATH_TO_USERS_SAVEDATA); File.WriteAllText(fname, JsonUtility.ToJson(saveData)); }