//======================================================================= // сохранить данные текущего юзера (перезапись/вставка в файл сохранений) 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); }
// инициализация (перед началом уровня) public void Init() { user = myUtils.GetCurUserSaveData(); if (user.level <= 0) { user.level = 1; myUtils.SaveUserData(user); } scoreLevel = 0; cur_scoreLevel = 0; scoreLevel_delta = 0; next_change_time = 0f; }
//******************************************************** //создание юзера public void User_Create() { string err_msg = ""; string input_name = GetInputName(); Debug.Log("имя: " + input_name); //проверки существования имени, if (input_name.Length < 3) { err_msg = "Слишком короткое имя. Имя должно содержать 3+ знаков."; } else { if (arUsers.Count > 0) { //а также совпадения с уже имеющимися for (int i = 0; i < arUsers.Count; i++) //foreach (OneUserSaveData user in arUsers) { if (arUsers[i].name.Equals(input_name)) { err_msg = "Такое имя уже есть в списке юзеров."; break; } } } } if (err_msg.Length > 0) { //если есть, показ сообщения и продолжение MessageBox.ShowMessage(() => { Debug.Log("mb Create click"); }, err_msg); } else { //если нет, создание юзера и сохранение его в файл и сообщение об этом var newUser = new OneUserSaveData(); newUser.name = input_name; newUser.id = 0; newUser.score = 0; newUser.level = 0; arUsers.Add(newUser); allUsers.curUserName = newUser.name; Save_AllUsersData(); Reload_AllUsersData(); } }