public static void Save(object entity) { string entityId = GetEntityId(entity); Type entityType = entity.GetType(); List <DataMemberInfo> dataMemberInfos = PlayerPrefsCache.GetDataMemberInfoWithFieldAttribute(entityType); foreach (DataMemberInfo dataMemberInfo in dataMemberInfos) { string fieldKey = GetFieldKey(entityId, entityType, dataMemberInfo); Type fieldType = dataMemberInfo.GetMemberInfoType(); PlayerPrefsFieldHandler fieldHandler = PlayerPrefsFieldFactory.Get(fieldType); fieldHandler.SetValue(fieldKey, dataMemberInfo, entity); } PlayerPrefs.Save(); }
public static void Load(object entity, string entityId) { Type entityType = entity.GetType(); List <DataMemberInfo> dataMemberInfos = PlayerPrefsCache.GetDataMemberInfoWithFieldAttribute(entityType); foreach (DataMemberInfo dataMemberInfo in dataMemberInfos) { string fieldKey = GetFieldKey(entityId, entityType, dataMemberInfo); Type fieldType = dataMemberInfo.GetMemberInfoType(); if (PlayerPrefs.HasKey(fieldKey)) { PlayerPrefsFieldHandler fieldHandler = PlayerPrefsFieldFactory.Get(fieldType); dataMemberInfo.SetValue(entity, fieldHandler.GetValue(fieldKey)); } } }