65 lines
1.3 KiB
C#
65 lines
1.3 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class StorageBase<T> where T : StorageBase<T>,new ()
|
|
{
|
|
private static T mInstance;
|
|
public static T Instance
|
|
{
|
|
get
|
|
{
|
|
if (mInstance == null)
|
|
{
|
|
Load();
|
|
}
|
|
|
|
return mInstance;
|
|
}
|
|
}
|
|
|
|
protected virtual void InitFirstDefault()
|
|
{
|
|
|
|
}
|
|
|
|
protected virtual void InitBuildDefault()
|
|
{
|
|
|
|
}
|
|
|
|
public static void Load()
|
|
{
|
|
if (ES3.FileExists() && ES3.KeyExists(typeof(T).Name))
|
|
{
|
|
mInstance = ES3.Load<T>(typeof(T).Name);
|
|
}
|
|
else
|
|
{
|
|
mInstance = new T();
|
|
|
|
string tFirstDefaultKey = "FirstDefault_" + typeof(T).Name;
|
|
|
|
if (PlayerPrefs.GetInt(tFirstDefaultKey, 0) != 1)
|
|
{
|
|
PlayerPrefs.SetInt(tFirstDefaultKey, 1);
|
|
mInstance.InitFirstDefault();
|
|
}
|
|
}
|
|
|
|
string tBuildDefaultKey = "BuildDefault_" + typeof(T).Name + Application.buildGUID;
|
|
|
|
if (PlayerPrefs.GetInt(tBuildDefaultKey, 0) != 1)
|
|
{
|
|
PlayerPrefs.SetInt(tBuildDefaultKey, 1);
|
|
mInstance.InitBuildDefault();
|
|
}
|
|
|
|
Save();
|
|
}
|
|
|
|
public static void Save()
|
|
{
|
|
ES3.Save<T>(typeof(T).Name, mInstance);
|
|
}
|
|
} |