public static void DeletePrefs(IDebuggable system, DebugSystemComponent.SystemInfo info, string prefix) { PlayerPrefs.DeleteKey(prefix + "isEnabled"); PlayerPrefs.DeleteKey(prefix + "showLog"); foreach (FieldInfo field in system.GetType().GetFields(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)) { if (CanDisplayField(field)) { PlayerPrefs.DeleteKey(prefix + field.Name); } } }
public static void LoadSettings(IDebuggable system, DebugSystemComponent.SystemInfo info, string prefix) { LoadVariable(prefix + "_isEnabled", ref info.isDebuggingEnabled); LoadVariable(prefix + "_showLog", ref info.showLog); foreach (FieldInfo field in system.GetType().GetFields(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)) { if (CanDisplayField(field) && field.GetCustomAttributes(typeof(DontRememberFieldValue), false).Length == 0) { if (field.FieldType == typeof(bool)) { bool value = (bool)field.GetValue(system); DebuggerUtils.LoadVariable(prefix + "_" + field.Name, ref value); field.SetValue(system, value); } else if (field.FieldType == typeof(int)) { int value = (int)field.GetValue(system); DebuggerUtils.LoadVariable(prefix + "_" + field.Name, ref value); field.SetValue(system, value); } else if (field.FieldType == typeof(float)) { float value = (float)field.GetValue(system); DebuggerUtils.LoadVariable(prefix + "_" + field.Name, ref value); field.SetValue(system, value); } else if (field.FieldType == typeof(string)) { string value = (string)field.GetValue(system); DebuggerUtils.LoadVariable(prefix + "_" + field.Name, ref value); field.SetValue(system, value); } } } if (system is IDebuggableEx) { ((IDebuggableEx)system).OnPreviousValuesLoaded(); } }