public static bool IsIdenticalToPrefs() { foreach (var field in FieldCache.Values) { var myValue = field.GetValue(null); var prefValue = PlayerPrefsHelper.GetObject(GetSettingName(field.Name), field.FieldType); if (!Equals(myValue, prefValue)) { return(false); } } foreach (var field in PropertyCache.Values) { var myValue = field.GetValue(null, null); var prefValue = PlayerPrefsHelper.GetObject(GetSettingName(field.Name), field.PropertyType); if (!Equals(myValue, prefValue)) { return(false); } } return(true); }