static T GetEditorPref <T>(string key, T fallback = default(T)) { var k = GetEditorPrefKey <T>(key); if (!EditorPrefs.HasKey(k)) { return(fallback); } var o = (object)fallback; if (typeof(T) == typeof(string)) { o = EditorPrefs.GetString(k, (string)o); } else if (typeof(T) == typeof(bool)) { o = EditorPrefs.GetBool(k, (bool)o); } else if (typeof(T) == typeof(float)) { o = EditorPrefs.GetFloat(k, (float)o); } else if (typeof(T) == typeof(int)) { o = EditorPrefs.GetInt(k, (int)o); } else { return(ValueWrapper <T> .Deserialize(EditorPrefs.GetString(k))); } return((T)o); }