public static CTestAccountMainData LoadAccountMainData() { string str = PlayerPrefs.GetString(CTestAccountMainKey); if (string.IsNullOrEmpty(str)) { return(new CTestAccountMainData("CTest")); } CTestAccountSaveData saveData = JsonUtility.FromJson <CTestAccountSaveData>(str); CTestAccountMainData mainData = new CTestAccountMainData(saveData.accountName); string[] dataStrList = saveData.accountDataStr.Split(new char[] { '|' }); for (int i = 0; i < dataStrList.Length; i++) { CTestAccountData data = JsonUtility.FromJson <CTestAccountData>(dataStrList[i]); if (data != null) { mainData.accountDataList.Add(data); } } return(mainData); }
/// <summary> /// 获取账号 /// </summary> /// <param name="accountName"></param> /// <param name="accountData"></param> /// <returns></returns> public static string GetAccountStrByData(string accountName, CTestAccountData accountData) { if (accountData == null) { return(""); } DateTime dateTime = GetSystemTimeFromStamp(accountData.registTime); string accountStr = accountName + "_" + dateTime.Month + "_" + dateTime.Day + "_" + accountData.index;; return(accountStr); }
/// <summary> /// 获取并复制最后使用账号 /// </summary> public static void CopyLastLoginAccount() { CTestAccountMainData accountMainData = LoadAccountMainData(); CTestAccountData accountData = GetLastLoginAccount(accountMainData); if (accountData != null) { accountData.lastLoginTime = GetCurrentTimeStamp(); SaveAccountMainData(accountMainData); } CopyAccount(accountMainData.accountName, accountData); }
/// <summary> /// 复制账号 /// </summary> /// <param name="accountName"></param> /// <param name="accountData"></param> public static void CopyAccount(string accountName, CTestAccountData accountData) { if (accountData == null) { return; } string accountStr = GetAccountStrByData(accountName, accountData); TextEditor t = new TextEditor(); t.text = accountStr; t.OnFocus(); t.Copy(); Debug.Log("已复制账号:" + accountStr); }
/// <summary> /// 注册新账号 /// </summary> public static void RegistNewAccount() { CTestAccountMainData accountmainData = LoadAccountMainData(); ClearOldAccount(accountmainData); int currentStampTime = GetCurrentTimeStamp(); CTestAccountData accountData = new CTestAccountData(GetNewAccountIndex(accountmainData), currentStampTime, currentStampTime); accountmainData.accountDataList.Add(accountData); SaveAccountMainData(accountmainData); CopyAccount(accountmainData.accountName, accountData); }
/// <summary> /// 获取新账号index /// </summary> /// <param name="mainData"></param> /// <returns></returns> private static int GetNewAccountIndex(CTestAccountMainData mainData) { CTestAccountData lastAccount = GetLastLoginAccount(mainData); if (lastAccount == null) { return(1); } DateTime lastDateTime = GetSystemTimeFromStamp(lastAccount.registTime); if (lastDateTime.Year == DateTime.UtcNow.Year && lastDateTime.Month == DateTime.UtcNow.Month && lastDateTime.Day == DateTime.UtcNow.Day) { return(lastAccount.index + 1); } else { return(1); } }
/// <summary> /// 获取最后使用账号 /// </summary> /// <returns></returns> private static CTestAccountData GetLastLoginAccount(CTestAccountMainData accountMainData) { if (accountMainData == null) { return(null); } if (accountMainData.accountDataList == null || accountMainData.accountDataList.Count == 0) { return(null); } CTestAccountData accountData = accountMainData.accountDataList[0]; accountMainData.accountDataList.ForEach(x => { //不能改成大于 防止同一秒点击多次 if (x.lastLoginTime >= accountData.lastLoginTime) { accountData = x; } }); return(accountData); }