コード例 #1
0
    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);
    }
コード例 #2
0
    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);
            }
        }
    }