¡¡static ¥¯¥é¥¹¤È¤·¤Æ PlayerPrefsHelper ¥¯¥é¥¹¤òºîÀ®¤·¤Þ¤¹¡£
¤³¤ì¤Ï Unity ¤Î PlayerPrefs ¥¯¥é¥¹¤Î³Æµ¡Ç½¤òÍøÍѤ·¤ä¤¹¤¤¤è¤¦¤ËÊñ³çŪ¤Ë´ÉÍý¤·¤Æ¤¤¤ë¥Ø¥ë¥Ñ¡¼¥¯¥é¥¹¤Ç¤¹¡£
¡¡¤³¤Î¥¯¥é¥¹Æâ¤ËÍÑ°Õ¤¹¤ë¥á¥½¥Ã¥É¤Ë¤ª¤¤¤Æ JsonConvert ¥¯¥é¥¹¤òÍøÍѤ·¡¢
GameData ¥¯¥é¥¹¤ò£±¤Ä¤Î¾ðÊó¤È¤·¤Æ¤Þ¤È¤á¤Æ¥»¡¼¥Ö¡¦¥í¡¼¥É¤ò¹Ô¤¨¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£
PlayerPrefsHelper.cs
<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹¡£
using UnityEngine;
using Newtonsoft.Json;
/// <summary>
/// »ØÄꤷ¤¿¥¯¥é¥¹¤òstring·¿¤ÎJson·Á¼°¤ÇPlayerPrefs¥¯¥é¥¹¤Ë¥»¡¼¥Ö¡¦¥í¡¼¥É¤¹¤ë¤¿¤á¤ÎHelper¥¯¥é¥¹
/// </summary>
public static class PlayerPrefsHelper
{
/// <summary>
/// »ØÄꤷ¤¿¥¡¼¤Î¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤ë¤«³Îǧ
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public static bool ExistsData(string key)
{
return PlayerPrefs.HasKey(key);
}
/// <summary>
/// »ØÄꤵ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ç¡¼¥¿¤ò¥»¡¼¥Ö
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <param name="obj"></param>
public static void Save<T>(string key, T obj)
{
// ¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ç¡¼¥¿¤òJson·Á¼°¤ËÊÑ´¹
string json = JsonUtility.ToJson(obj);
PlayerPrefs.SetString(key, json);
PlayerPrefs.Save();
Debug.Log($"{key}¤ò¥»¡¼¥Ö¤·¤Þ¤·¤¿");
}
/// <summary>
/// »ØÄꤵ¤ì¤¿¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ç¡¼¥¿¤ò¥í¡¼¥É
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="key"></param>
/// <returns></returns>
public static T Load<T>(string key)
{
Debug.Log($"{key}¤ò¥í¡¼¥É¤·¤Þ¤¹");
string json = PlayerPrefs.GetString(key);
// Æɤ߹þ¤à·¿¤ò»ØÄꤷ¡¢ÊÑ´¹¤·¤Æ¼èÆÀ
return JsonUtility.FromJson<T>(json);
}
/// <summary>
/// »ØÄꤷ¤¿¥Ç¡¼¥¿¤òºï½ü
/// </summary>
/// <param name="key"></param>
public static void ClearSaveData(string key)
{
PlayerPrefs.DeleteKey(key);
Debug.Log($"{key}¤Î¥Ç¡¼¥¿¤òºï½ü¤·¤Þ¤·¤¿");
}
/// <summary>
/// GameData¥¯¥é¥¹¤ò¥»¡¼¥Ö
/// </summary>
public static void SaveGameData()
{
// GameData¤òJSON¤Ë¥·¥ê¥¢¥é¥¤¥º
string jsonString = JsonConvert.SerializeObject(GameDataManager.instance.gameData);
// JSONʸ»úÎó¤òÊݸ
PlayerPrefs.SetString(ConstData.GAME_DATA_SAVE_KEY, jsonString);
PlayerPrefs.Save();
Debug.Log($"{GameDataManager.instance.gameData}¤ò¥»¡¼¥Ö¤·¤Þ¤·¤¿");
}
/// <summary>
/// GameData¥¯¥é¥¹¤ò¥í¡¼¥É
/// </summary>
public static void LoadGameData()
{
// JSONʸ»úÎó¤ò¥í¡¼¥É
string jsonString = PlayerPrefs.GetString(ConstData.GAME_DATA_SAVE_KEY);
// JSONʸ»úÎó¤òGameData¥¯¥é¥¹¤Ë¥Ç¥·¥ê¥¢¥é¥¤¥º
GameDataManager.instance.gameData = JsonConvert.DeserializeObject<GameData>(jsonString);
Debug.Log($"{GameDataManager.instance.gameData}¤ò¥í¡¼¥É¤·¤Þ¤·¤¿");
}
}