/// <summary> /// Displays the leaderboards UI. /// </summary> /// <param name="windowRect">The bounding rect of the window.</param> public static void OnGUI(Rect windowRect) { if (LumosSocialGUI.currentUser == null) { LumosSocialGUI.statusMessage = "You must login before viewing leaderboards."; LumosSocialGUI.DrawLoginButton(); return; } if (LumosSocial.leaderboards == null) { LumosSocialGUI.statusMessage = "Loading leaderboards..."; if (!LumosSocialGUI.inProgress) { LumosSocial.LoadLeaderboardDescriptions(success => { LumosSocialGUI.statusMessage = null; }); LumosSocialGUI.inProgress = true; } return; } if (LumosSocial.leaderboards.Length > 0) { foreach (var leaderboard in LumosSocial.leaderboards) { if (leaderboard.loading) { GUILayout.Label("Loading..."); GUI.enabled = false; } if (GUILayout.Button(leaderboard.title)) { currentLeaderboard = leaderboard as LumosLeaderboard; LumosSocialGUI.ShowWindow(LumosGUIWindow.Scores); if (currentLeaderboard.scores == null) { Social.LoadScores(currentLeaderboard.id, null); } } GUI.enabled = true; } LumosSocialGUI.DrawDivider(); } }
// Loads leaderboard names and other info (not scores) public static void LoadLeaderboardDescriptions() { LumosSocial.LoadLeaderboardDescriptions((success) => { if (!success) { Debug.LogWarning("Unable to load leaderboard descriptions."); return; } leaderboards = new List <LumosLeaderboard>(); // Loaded leaderboards are stored in LumosSocial.leaderboards for your convenience // We'll store our own copy of it in this class though for demonstration purposes. foreach (var leaderboard in LumosSocial.leaderboards) { leaderboards.Add(leaderboard as LumosLeaderboard); } }); }