RankEditorTool.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using UnityEditor;
  2. using UnityEngine;
  3. using System.Collections.Generic;
  4. namespace LocalRank
  5. {
  6. public static class RankEditorTool
  7. {
  8. // 动态获取 GameId 列表
  9. private static List<int> GameIds => RankService.GetAllGameIds();
  10. // 自定义 GameId 列表
  11. private static readonly List<int> CustomGameIds = new List<int> { 1, 13, 14, 15, 16 };
  12. [MenuItem("Tools/排行榜/创建排行榜表")]
  13. public static void CreateAllRankTables()
  14. {
  15. foreach (var gameId in CustomGameIds)
  16. {
  17. RankService.CreateTableIfNotExists(gameId);
  18. Debug.Log($"已创建排行榜表:rank_game_{gameId}");
  19. }
  20. EditorUtility.DisplayDialog("操作完成", "已创建所有排行榜表", "好的");
  21. }
  22. [MenuItem("Tools/排行榜/清空所有排行榜表")]
  23. public static void ClearAllRankTables()
  24. {
  25. if (!EditorUtility.DisplayDialog("警告", "你确定要清空所有排行榜数据吗?此操作不可撤销!", "确定", "取消"))
  26. return;
  27. foreach (var gameId in GameIds)
  28. {
  29. RankService.ClearTable(gameId);
  30. Debug.Log($"已清空排行榜表:rank_game_{gameId}");
  31. }
  32. EditorUtility.DisplayDialog("操作完成", "已清空所有排行榜表数据", "好的");
  33. }
  34. [MenuItem("Tools/排行榜/打印所有排行榜数据")]
  35. public static void PrintAllRanks()
  36. {
  37. foreach (var gameId in GameIds)
  38. {
  39. var (list, _, count) = RankService.GetRankList(gameId, -1);
  40. Debug.Log($"[rank_game_{gameId}] 总记录数:{count}");
  41. foreach (var entry in list)
  42. {
  43. Debug.Log($"[{entry.Rank}] {entry.Nickname} - {entry.Score} {(entry.IsSelf ? "(自己)" : "")}");
  44. }
  45. }
  46. EditorUtility.DisplayDialog("打印完成", "已在控制台输出所有排行榜数据", "好的");
  47. }
  48. }
  49. }