¡¡¥»¡¼¥Ö¤Î½èÍý¤Ë¤Ä¤¤¤Æ¤Ï¤½¤ì¤¾¤ì¤Ë¥á¥½¥Ã¥É¤ò½àÈ÷¤·¤Æ¤ª¤¤¤Æ¡¢¤½¤Î¥á¥½¥Ã¥É¤ò³°Éô¤Î¥¯¥é¥¹¤è¤ê¼Â¹Ô¤·¤Æ¤â¤é¤¦¤è¤¦¤Ë¤·¤Þ¤¹¡£
¼ÂºÝ¤Î¥»¡¼¥Ö½èÍý¤Ï PlayerPrefsHelper ¥¯¥é¥¹¤òÍøÍѤ·¤Æ¹Ô¤¤¤Þ¤¹¡£¤¹¤Ç¤Ë¥á¥½¥Ã¥É¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤½¤Á¤é¤ò³èÍѤ·¤Þ¤¹¡£
¡¡Ë«¾Þ¤Î¾ðÊó¤Ï¥¯¥é¥¹¤Ç¤¢¤ë¤¿¤á¡¢PlayerPrefs ¥¯¥é¥¹¤Ë¤Ï¤½¤Î¤Þ¤Þ¥»¡¼¥Ö¤Ç¤¤Þ¤»¤ó¡£
OfflineTimeManager ¥¯¥é¥¹¤Î JobTimeData ¥¯¥é¥¹¤ò¥»¡¼¥Ö¤·¤¿¤È¤¤È¤ª¤Ê¤¸¤è¤¦¤Ë¡¢Json ·Á¼°¤ËÊÑ´¹¤·¤Æ string ·¿¤Ç¥»¡¼¥Ö¤ò¤·¤Æ¤ª¤¤Þ¤¹¡£
¤½¤·¤Æ¥í¡¼¥É»þ¤ËÉü¸µ¤ò¹Ô¤¦½èÍý¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡¥Ý¥¤¥ó¥È¤ÎÃÍ¤Ï int ·¿¤Ç¤¹¤Î¤Ç¡¢¤½¤Î¤Þ¤Þ¥»¡¼¥Ö²Äǽ¤Ç¤¹¡£¤³¤Á¤é¤â PlayerPrefsHelper ¥¯¥é¥¹¤Ë¤¢¤ë¥á¥½¥Ã¥É¤òÍøÍѤ·¤Þ¤¹¡£
¡¡
ÈÆÍÑÀ¤Î¤¢¤ë¥æ¡¼¥Æ¥£¥ê¥Æ¥£¥¯¥é¥¹¤ò£±¤ÄºîÀ®¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢¿·¤·¤¤¥»¡¼¥Ö¾ðÊó¤¬Áý¤¨¤¿¾ì¹ç¤Ë¤â¡¢¥æ¡¼¥Æ¥£¥ê¥Æ¥£¥¯¥é¥¹¤Î¥á¥½¥Ã¥É¤ò¤½¤Î¤Þ¤Þ³èÍѤǤ¤ë¤¿¤á¡¢Èó¾ï¤ËÊØÍø¤Ç¤¹¡£
GameData.cs
¡¡<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameData : MonoBehaviour
{
public static GameData instance;
/// <summary>
/// ³ÍÆÀºÑ¤ÎË«¾Þ¤ÎÅÐÏ¿ÍÑ¥¯¥é¥¹
/// </summary>
[System.Serializable]
public class EarnedReward {
public int rewardNo; // Ë«¾Þ¤ÎÈÖ¹æ RewardData ¤Î rewardNo ¤È¾È¹ç¤¹¤ë
public int rewardCount; // Ë«¾Þ¤Î½ê»ý¿ô
}
[Header("³ÍÆÀ¤·¤Æ¤¤¤ëË«¾Þ¤Î¥ê¥¹¥È")]
public List<EarnedReward> earnedRewardsList = new List<EarnedReward>();
[Header("Ë«¾Þ¥Ý¥¤¥ó¥È¤Î¹ç·×ÃÍ")]
public int totalRewardPoint;
////* ¤³¤³¤«¤éÊÑ¿ô¤ÎÀë¸À¤òÄɲà *////
private const string EARNED_REWARD_SAVE_KEY = "earnedRewardNo_";
private const string TOTAL_REWARD_POINT_SAVE_KEY = "totalRewardPoint";
////* ¤³¤³¤Þ¤Ç *////
private void Awake() {
if(instance == null) {
instance = this;
DontDestroyOnLoad(gameObject);
} else {
Destroy(gameObject);
}
}
/// <summary>
/// Ë«¾Þ¥Ý¥¤¥ó¥È·×»»
/// </summary>
/// <param name="amount"></param>
public void CalulateTotalRewardPoint(int amount) {
// Ë«¾Þ¥Ý¥¤¥ó¥È¤ò·×»»¤·¤Æ¹ç·×ÃÍ»»½Ð
totalRewardPoint += amount;
}
/// <summary>
/// ³ÍÆÀ¤·¤¿Ë«¾Þ¤ò¥ê¥¹¥È¤ËÄɲÃ
/// ¤¹¤Ç¤Ë¥ê¥¹¥È¤Ë¤¢¤ë¾ì¹ç¤Ë¤Ï²Ã»»
/// </summary>
/// <param name="addRewardNo"></param>
/// <param name="addRewardCount"></param>
public void AddEarnedRewardsList(int addRewardNo, int addRewardCount = 1) {
// ¤¹¤Ç¤Ë¥ê¥¹¥È¤ËÅÐÏ¿¤¬¤¢¤ëË«¾Þ¤«³Îǧ¤¹¤ë
if (earnedRewardsList.Exists(x => x.rewardNo == addRewardNo)) {
// ÅÐÏ¿¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï²Ã»»
earnedRewardsList.Find(x => x.rewardNo == addRewardNo).rewardCount++;
} else {
// ÅÐÏ¿¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¿·¤·¤¯ÄɲÃ
earnedRewardsList.Add(new EarnedReward { rewardNo = addRewardNo, rewardCount = addRewardCount });
}
}
/// <summary>
/// ³ÍÆÀ¤·¤Æ¤¤¤ëË«¾Þ¤Î¥ê¥¹¥È¤òºï½ü
/// ÈÖ¹æ»ØÄꤢ¤ê¤Î¾ì¹ç¤Ë¤Ï»ØÄꤵ¤ì¤¿Ë«¾Þ¤ÎÈÖ¹æ¤Î¾ðÊó¤òºï½ü
/// ÈÖ¹æ»ØÄê¤Ê¤·¤Î¾ì¹ç¤Ë¤Ï¤¹¤Ù¤Æºï½ü
/// </summary>
/// <param name="isAll"></param>
public void RemoveEarnedRewardsList(int rewardNo = 999) {
if (rewardNo == 999) {
// ¤¹¤Ù¤Æ¤ÎË«¾Þ¤Î¥Ç¡¼¥¿¤òºï½ü
earnedRewardsList.Clear();
} else {
// »ØÄꤵ¤ì¤¿Ë«¾Þ¤ÎÈÖ¹æ¤Î¥Ç¡¼¥¿¤òºï½ü
earnedRewardsList.Remove(earnedRewardsList.Find(x => x.rewardNo == rewardNo));
}
}
////* ¤³¤³¤«¤éÊÑ¿ô¤ÎÀë¸À¤òÄɲà *////
/// <summary>
/// ³ÍÆÀ¤·¤¿Ë«¾Þ¤Î¥Ç¡¼¥¿¤Î¥»¡¼¥Ö
/// </summary>
/// <param name="saveRewardNo"></param>
public void SaveEarnedReward(int saveRewardNo) {
PlayerPrefsHelper.SaveSetObjectData(EARNED_REWARD_SAVE_KEY + saveRewardNo, earnedRewardsList.Find(x => x.rewardNo == saveRewardNo));
}
/// <summary>
/// Ë«¾Þ¥Ý¥¤¥ó¥È¤Î¥»¡¼¥Ö
/// </summary>
public void SaveTotalRewardPoint() {
PlayerPrefsHelper.SaveIntData(TOTAL_REWARD_POINT_SAVE_KEY, totalRewardPoint);
}
////* ¤³¤³¤Þ¤Ç *////
}
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡Á°²ó¤Î¼ê½ç¤Ë°ú¤Â³¤¡¢º£²ó¤Î¼ÂÁõ¤Ç¤Ï¤É¤Î¤è¤¦¤Ê½èÍý¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤Î¤«¡¢Éü½¬¤ò·ó¤Í¤ÆÆɤßÊÖ¤·¤ÆÍý²ò¤ò¿¼¤á¤Æ¤¯¤À¤µ¤¤¡£
¡¡
½èÍý¤òµ½Ò¤·¤Æ¼ÂÁõ¤ò¤·¤Æ¤¤¤¯¤³¤È¤¬¶µºà¤ÎÌÜŪ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¡¡¤É¤Î¤è¤¦¤ËÍøÍѤ·¤Æ¤¤¤ë¤Î¤«¤ò¼«Ê¬¤Ç»È¤¤Êý¤ò´Þ¤á¤Æ³Ø½¬¤·¡¢º£¸å¡¢¼«Ê¬¤ÎÀ½ºî¤¹¤ë¥²¡¼¥à¤Ë¤ÇÍøÍѤ·¤Æ¤¤¤±¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤¯¤³¤È¤¬ÂçÀڤǤ¹¡£