/** * Associate key with color value. * Optional isLocal parameter stores preference in project settings (true) or global (false). */ public static void SetColor(string key, Color value, PreferenceLocation location = PreferenceLocation.Project) { if (location == PreferenceLocation.Project) { if (preferences == null) { return; } preferences.SetColor(key, value); UnityEditor.EditorUtility.SetDirty(preferences); } else { EditorPrefs.SetString(key, value.ToString()); } }
/** * Associate key with material value. * Optional isLocal parameter stores preference in project settings (true) or global (false). */ public static void SetMaterial(string key, Material value, PreferenceLocation location = PreferenceLocation.Project) { if (location == PreferenceLocation.Project) { if (preferences == null) { return; } preferences.SetMaterial(key, value); UnityEditor.EditorUtility.SetDirty(preferences); } else { EditorPrefs.SetString(key, value != null ? AssetDatabase.GetAssetPath(value) : ""); } }
/** * Associate key with bool value. * Optional isLocal parameter stores preference in project settings (true) or global (false). */ public static void SetBool(string key, bool value, PreferenceLocation location = PreferenceLocation.Project) { if (location == PreferenceLocation.Project) { if (preferences == null) { return; } preferences.SetBool(key, value); UnityEditor.EditorUtility.SetDirty(preferences); } else { EditorPrefs.SetBool(key, value); } }
/// <summary> /// Serialize a value to JSON /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <param name="location"></param> /// <typeparam name="T"></typeparam> public static void SetValue <T>(string key, T value, PreferenceLocation location = PreferenceLocation.Project) { SetString(key, JsonUtility.ToJson(value), location); }