public class PrefsBase
{
public string id;
{
public string id;
public static T GetPrefs<T>(string sid) where T : PrefsBase
{
string key = typeof(T).FullName + sid.ToString();
string str = PlayerPrefs.GetString(key);
PrefsBase prefsInfo = (PrefsBase)moduleAssebly.CreateInstance(typeof(T).FullName);
if(string.IsNullOrEmpty(str)) prefsInfo.Init(sid);
prefsInfo.SetFieldValue(str);
return prefsInfo as T;
}
{
string key = typeof(T).FullName + sid.ToString();
string str = PlayerPrefs.GetString(key);
PrefsBase prefsInfo = (PrefsBase)moduleAssebly.CreateInstance(typeof(T).FullName);
if(string.IsNullOrEmpty(str)) prefsInfo.Init(sid);
prefsInfo.SetFieldValue(str);
return prefsInfo as T;
}
public static void SetPrefs<T>(PrefsBase prefs) where T : PrefsBase
{
T prefsInfo = prefs as T;
string key = typeof(T).FullName + prefsInfo.id.ToString();
string str = prefsInfo.GetPrefsStr();
PlayerPrefs.SetString(key, str);
}
{
T prefsInfo = prefs as T;
string key = typeof(T).FullName + prefsInfo.id.ToString();
string str = prefsInfo.GetPrefsStr();
PlayerPrefs.SetString(key, str);
}
public virtual void Init(string _id)
{
this.id = _id;
}
{
this.id = _id;
}
public void SetFieldValue(string prefsStr)
{
System.Type type = GetType();
string[] arr = prefsStr.Split('|');
{
System.Type type = GetType();
string[] arr = prefsStr.Split('|');
for (int i = 0; i < arr.Length; i++)
{
if (string.IsNullOrEmpty(arr[i])) continue;
string[] arr2 = arr[i].Split(':');
type.GetField(arr2[0]).SetValue(this, Util.converFieldValue(type.GetField(arr2[0]).FieldType.ToString() ,arr2[1]));
}
}
{
if (string.IsNullOrEmpty(arr[i])) continue;
string[] arr2 = arr[i].Split(':');
type.GetField(arr2[0]).SetValue(this, Util.converFieldValue(type.GetField(arr2[0]).FieldType.ToString() ,arr2[1]));
}
}
public string GetPrefsStr()
{
System.Type type = GetType();
string str = "";
foreach (var v in type.GetFields())
{
str += v.Name + ":" + v.GetValue(this) + "|";
}
return str;
}
}
{
System.Type type = GetType();
string str = "";
foreach (var v in type.GetFields())
{
str += v.Name + ":" + v.GetValue(this) + "|";
}
return str;
}
}
/// <summary>
/// 角色信息存档
/// </summary>
public class PrefsRoleInfo : PrefsBase
{
/// 角色信息存档
/// </summary>
public class PrefsRoleInfo : PrefsBase
{
public string roleId;
public bool bUnlock;
public bool bUnlock;
public override void Init(string _id)
{
base.Init(_id);
}
}
{
base.Init(_id);
}
}