nickmattinson / ZXYZ

Top-Down 2D Dungeon Crawler
1 stars 0 forks source link

Leaderboard #62

Closed MikeMMattinson closed 2 months ago

MikeMMattinson commented 2 months ago

To repeat bug:

  1. start game
  2. click Leaderboard
  3. observe console warning [LeaderboardCreator] Username cannot be null or empty! UnityEngine.Debug:LogError (object) Dan.Main.LeaderboardCreator:LogError (string) (at Assets/LeaderboardCreator/Scripts/Main/LeaderboardCreator.cs:314) Dan.Main.LeaderboardCreator:UploadNewEntry (string,string,int,string,System.Action1<bool>,System.Action1) (at Assets/LeaderboardCreator/Scripts/Main/LeaderboardCreator.cs:174) Dan.Main.LeaderboardCreator:UploadNewEntry (string,string,int,System.Action1<bool>,System.Action1) (at Assets/LeaderboardCreator/Scripts/Main/LeaderboardCreator.cs:153) Leaderboard:SetLeaderboardEntry (string,int) (at Assets/Scripts/Leaderboard.cs:34) UnityEngine.Events.UnityEvent`2<string, int>:Invoke (string,int) StateManager:loadLeaderboard () (at Assets/Scripts/StateManager.cs:111) UnityEngine.EventSystems.EventSystem:Update () (at ./Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:530)
git fetch origin
git checkout 62-leaderboard
MikeMMattinson commented 2 months ago
public void loadLeaderboard()
{
    //Check if input is provided in usernameInput
    if (!string.IsNullOrEmpty(usernameInput.text))
    {
        // Set player.username using usernameInput
        player.username = usernameInput.text;
        PlayerPrefs.SetString("PlayerUserName", player.username);
    }
    else
    {
        // Set a default username
        player.username = "Player";
        PlayerPrefs.SetString("PlayerUserName", player.username);
    }

    if (!string.IsNullOrEmpty(player.username))
    {
        // Update high score
        submitScoreEvent.Invoke(player.username, player.score);
        Debug.Log($"Loading leaderboard - Player: {player.username}, Score: {player.score}");

        leaderboardCanvas.SetActive(true);
        settingsCanvas.SetActive(false);
        gameOverCanvas.SetActive(false);
        mainMenuCanvas.SetActive(false);
        gameCanvas.SetActive(false);
    }
    else
    {
        Debug.LogError("Player username is null or empty when loading leaderboard!");
    }
}