using MCPForUnity.Runtime.Helpers; using UnityEditor; namespace MCPForUnity.Editor.Helpers { /// /// Per-user EditorPrefs override for the default screenshot output folder. /// Resolution priority used by callers: /// 1. Per-call output_folder tool parameter /// 2. (this preference) /// 3. built-in fallback /// public static class ScreenshotPreferences { public const string EditorPrefsKey = "MCPForUnity_ScreenshotsFolder"; /// /// User-configured default folder, or empty string when unset. /// Stored as a project-relative path (e.g. "Assets/Screenshots", "Captures"). /// public static string DefaultFolder { get => EditorPrefs.GetString(EditorPrefsKey, string.Empty); set { if (string.IsNullOrWhiteSpace(value)) { EditorPrefs.DeleteKey(EditorPrefsKey); } else { EditorPrefs.SetString(EditorPrefsKey, value.Trim()); } } } /// /// Resolves the effective folder: caller override → user pref → built-in default. /// Returns a project-relative path string suitable for . /// public static string Resolve(string callerOverride) { if (!string.IsNullOrWhiteSpace(callerOverride)) return callerOverride.Trim(); string pref = DefaultFolder; if (!string.IsNullOrWhiteSpace(pref)) return pref; return ScreenshotUtility.DefaultFolder; } } }