public void SaveUserStatusData() { SaveDataUserStatus userStatus = new SaveDataUserStatus(); userStatus.playerLevel = 1; if (currentStamina < maxStamina) { //スタミナ全回復までの時間を計算 DateTime nowDateTime = DateTime.Now; Debug.Log("現在 : " + nowDateTime.ToString()); int plusSecond = Mathf.FloorToInt(((maxStamina - currentStamina) * oneStaminaRecoverTimeElapsed)); TimeSpan timeSpan = new TimeSpan(0, 0, 0, plusSecond); Debug.Log("追加秒数 : " + plusSecond.ToString()); nowDateTime += timeSpan; userStatus.staminaMaxRecoverDateTime = nowDateTime.ToString(); Debug.Log("セーブ : " + userStatus.staminaMaxRecoverDateTime); //MobileNotificationManager.Instance.SetNotification("タイトル", "スタミナ回復通知", "", "", DateTime.Now); } else { userStatus.staminaMaxRecoverDateTime = ""; } SaveManager.Instance.DataSave <SaveDataUserStatus>(userStatus, SaveKeys.UserStatusKey); }
public void RecoverStaminaSaveData(UnityAction <float, float> updateUICallback) { //セーブデータを取り出してスタミナ回復判定 if (PlayerPrefs.HasKey(SaveKeys.UserStatusKey)) { SaveDataUserStatus userStatus = SaveManager.Instance.ReadSaveData <SaveDataUserStatus>(SaveKeys.UserStatusKey); if (!string.IsNullOrEmpty(userStatus.staminaMaxRecoverDateTime)) { DateTime recoverDate = DateTime.Parse(userStatus.staminaMaxRecoverDateTime); Debug.Log("recoverDate : " + recoverDate); DateTime nowDate = DateTime.Now; TimeSpan timeSpan = recoverDate - nowDate; double totalSecond = timeSpan.TotalSeconds; Debug.Log("timespan : " + timeSpan + "total : " + totalSecond); int totalFloor = Mathf.Abs(Mathf.FloorToInt((float)totalSecond)); float recoverStamina = totalFloor / nextRecoverTime; Debug.Log("recoverStamina : " + recoverStamina); currentStamina += Mathf.Floor(recoverStamina); if (currentStamina > maxStamina) { currentStamina = maxStamina; } updateUICallback(maxStamina, currentStamina); } } }