¡¡¿·¤·¤¤¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£¤³¤Î¥¯¥é¥¹¤Ï¥·¥ó¥°¥ë¥È¥ó¥¯¥é¥¹¤È¤·¤ÆºîÀ®¤·¤Þ¤¹¡£¤½¤¦¤¹¤ë¤³¤È¤Ç¡¢¤É¤Î¥¯¥é¥¹¤«¤é¤Ç¤â¥æ¡¼¥¶¡¼¤Î¥Ç¡¼¥¿¤Ø¤Î¥¢¥¯¥»¥¹¤òÍưפˤ¹¤ëÌÜŪ¤¬¤¢¤ê¤Þ¤¹¡£
¡¡¤³¤Î¥¯¥é¥¹¤Ë¤ÏÆþ¤ì»Ò¤È¤·¤Æ¤â¤¦£±¤Ä¤ÎÊ̤Υ¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£¤½¤ÎÆþ¤ì»Ò¥¯¥é¥¹¤¬¼ÂºÝ¤Ë¥æ¡¼¥¶¡¼¤ÎË«¾Þ¤Î¥Ç¡¼¥¿¤òµÏ¿¤¹¤ë¤¿¤á¤Î¥¯¥é¥¹¤Ë¤Ê¤ê¤Þ¤¹¡£
¤³¤Î¥·¥ó¥°¥ë¥È¥ó¥¯¥é¥¹¤ä¡¢Æþ¤ì»Ò¥¯¥é¥¹¤òÍøÍѤ·¤¿À߷פϡ¢OfflineTimeManager ¥¯¥é¥¹¤È¤Þ¤Ã¤¿¤¯Æ±¤¸À߷פǤ¹¡£¤½¤Á¤é¤â¸«Ä¾¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¤½¤·¤ÆÆþ¤ì»Ò¥¯¥é¥¹¤ò List ¤Ë¤·¤ÆÍøÍѤ·¤Þ¤¹¤Î¤Ç¡¢±¿ÍÑÊýË¡¤âƱ¤¸¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡ÊÑ¿ô¤Ë¤ÏË«¾Þ¤Î³ÍÆÀ¥Ý¥¤¥ó¥È¤Î¹ç·×Ãͤȡ¢List ¤òÍÑ°Õ¤·¤Æ¡¢¥æ¡¼¥¶¡¼¤Î¾ðÊó¤ò´ÉÍý¤¹¤ëµ¡Ç½¤ò¼ÂÁõ¤·¤Þ¤¹¡£
¥á¥½¥Ã¥É¤Ë¤Ï¡¢³ÍÆÀ¤·¤¿Ë«¾Þ¤ò List ¤ËÄɲᦺï½ü¤¹¤ëµ¡Ç½¤È¡¢³ÍÆÀ¤·¤¿¥Ý¥¤¥ó¥È¤Î·×»»½èÍý¤ò¹Ô¤¦µ¡Ç½¤ò¡¢¤½¤ì¤¾¤ì¤ËÌò³ä¤´¤È¤Ëʬ¤±¤Æ¥á¥½¥Ã¥É²½¤·¤Æ½àÈ÷¤·¤Þ¤¹¡£
¡¡¤³¤³¤Î½àÈ÷¤¬À°¤¨¤Ð¡¢Ê̤Υ¯¥é¥¹¤«¤é¸Æ¤Ó½Ð¤·Ì¿Îá¤ò¼õ¤±¤Æ¡¢³ÍÆÀ¤·¤¿Ë«¾Þ¤ò List ¤ËÅÐÏ¿¤·¤ÆµÏ¿¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
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 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));
}
}
}
¡¡¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤¿¤é¥»¡¼¥Ö¤·¤Þ¤¹¡£
¡¡¼ÂÁõ¤·¤Æ¤¤¤ë½èÍý¤Î¿¤¯¤â¡¢OfflineTimeManager ¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¼ÂÁõ¤·¤Æ¤¤¤ëÆâÍƤòƧ½±¤·¤Æ¤¤¤Þ¤¹¡£
¤½¤Î¤¿¤á¡¢¤½¤Á¤é¤Î½èÍý¤ò»²¹Í¤Ë¤·¤Ê¤¬¤éÉü½¬¤ò¤·¤Æ¡¢
¼«Ê¬¤Ç¤·¤Ã¤«¤ê¤ÈÆɤ߲ò¤±¤Æ¤¤¤ë¤«¤ò³Îǧ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡º£²ó¤Î¥á¥½¥Ã¥ÉÆâ¤Ç¼ÂÁõ¤·¤Æ¤¤¤ë List ¤òÁàºî¤¹¤ë³Æ¥á¥½¥Ã¥É(Find ¥á¥½¥Ã¥É¡¢Exists ¥á¥½¥Ã¥É¡¢Add ¥á¥½¥Ã¥É¡¢Clear ¥á¥½¥Ã¥É¡¢Remove ¥á¥½¥Ã¥É)¤Ë¤Ä¤¤¤Æ¤Ï°ÊÁ°¤Ë¤â¼ÂÁõ¤·¡¢ÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£
¤Þ¤¿¡¢¥¯¥é¥¹¤ò new ¥¡¼¥ï¡¼¥É¤ò»ÈÍѤ·¤Æ¥¤¥ó¥¹¥¿¥ó¥¹¤¹¤ë½èÍý¤â³Ø½¬ºÑ¤Ç¤¹¡£¤è¤¤µ¡²ñ¤Ç¤¹¤Î¤Ç¡¢¤·¤Ã¤«¤ê¤ÈÉü½¬¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£