using IchniOnline.Online.Logic; using IchniOnline.Online.Models; using UnityEditor; using UnityEngine; namespace IchniOnline.Editor { public static class LoginCacheEditor { private const string MENU_PATH = "Ichni/Login Cache"; [MenuItem(MENU_PATH + "/Generate Mock Data")] public static void GenerateMockData() { LoginCacheManager.SaveMockData(); var data = LoginCacheManager.CachedData; Debug.Log($"[LoginCacheEditor] 模拟缓存已写入: openId={data.openId}, name={data.name}"); } [MenuItem(MENU_PATH + "/Clear Cached Data")] public static void ClearCachedData() { LoginCacheManager.Clear(); Debug.Log("[LoginCacheEditor] 登录缓存已清除"); } [MenuItem(MENU_PATH + "/Show Cached Data", false, 200)] public static void ShowCachedData() { if (LoginCacheManager.HasCachedLogin) { var data = LoginCacheManager.CachedData; Debug.Log($"[LoginCacheEditor] 当前缓存:\n" + $" openId: {data.openId}\n" + $" unionId: {data.unionId}\n" + $" name: {data.name}\n" + $" email: {data.email}\n" + $" timestamp: {data.cacheTimestamp}"); } else { Debug.Log("[LoginCacheEditor] 无登录缓存"); } } // 动态禁用:没有缓存时灰显 Clear/Show [MenuItem(MENU_PATH + "/Clear Cached Data", true)] [MenuItem(MENU_PATH + "/Show Cached Data", true)] public static bool ValidateHasCache() { return LoginCacheManager.HasCachedLogin; } } }