Esempio n. 1
0
    /// <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);
            }
        });
    }