void CreateLeaderboardEntryFieldMP(LeaderboardEntryMP entry)
    {
        //Debug.Log("Creating a new entryfield(MP)");
        Transform     entryField = Instantiate(leaderboardEntryMP, leaderboardEntryContainer.transform);
        RectTransform entryRect  = entryField.transform.GetComponent <RectTransform>();

        entryRect.anchoredPosition = new Vector2(0, -(entryRect.rect.height / 2f) - entryRect.rect.height * leaderboardEntryFieldList.Count);

        if (leaderboardEntryFieldList.Count % 2 == 1)
        {
            entryField.transform.Find("LeaderboardEntryBG").GetComponent <Image>().color -= new Color(29f / 255f, 29f / 255f, 29f / 255f, 0); // Every other color is dark tinted version of the original color
        }

        entryField.transform.Find("RankNro").GetComponent <TextMeshProUGUI>().text     = (leaderboardEntryFieldList.Count + 1).ToString();
        entryField.transform.Find("PlayerNames").GetComponent <TextMeshProUGUI>().text = entry.nameP1 + " & " + entry.nameP2;
        entryField.transform.Find("PlayerTime").GetComponent <TextMeshProUGUI>().text  = Mathf.FloorToInt(entry.time / 60f).ToString() + "m:" + ((Mathf.RoundToInt(entry.time) % 60)).ToString() + "s";
        //entryField.transform.Find("PlayerScore").GetComponent<TextMeshProUGUI>().text = entry.score.ToString();
        entryField.transform.Find("PlayerKills").GetComponent <TextMeshProUGUI>().text = entry.kills.ToString();
        entryField.transform.Find("PlayerWave").GetComponent <TextMeshProUGUI>().text  = entry.wave.ToString();

        //entryField.transform.GetChild(0).GetComponent<TextMeshProUGUI>().text = (leaderboardEntryFieldList.Count + 1).ToString();
        //entryField.transform.GetChild(1).GetComponent<TextMeshProUGUI>().text = entry.name;
        //entryField.transform.GetChild(2).GetComponent<TextMeshProUGUI>().text = entry.score.ToString();
        //entryField.transform.GetChild(3).GetComponent<TextMeshProUGUI>().text = entry.kills.ToString();
        //entryField.transform.GetChild(4).GetComponent<TextMeshProUGUI>().text = entry.wave.ToString();

        entryField.gameObject.SetActive(true);

        leaderboardEntryFieldList.Add(entryField);
    }
Beispiel #2
0
    public void GameOver()
    {
        gameOver = true;
        gameOverMenu.SetActive(true);
        Cursor.lockState = CursorLockMode.None;
        Cursor.visible   = true;

        Time.timeScale = 0;

        LeaderboardScript leaderboard = GameObject.Find("Leaderboard").GetComponent <LeaderboardScript>();

        if (leaderboard != null)
        {
            if (playerCount > 1)
            {
                LeaderboardEntryMP entryMP = new LeaderboardEntryMP();

                entryMP.nameP1 = localPlayerName;
                entryMP.nameP2 = secondPlayerName;
                entryMP.kills  = kills;
                entryMP.wave   = roundsBeaten;
                entryMP.time   = gameTime;

                leaderboard.AddLeaderboardEntryMP(entryMP);
            }
            else
            {
                LeaderboardEntry entrySP = new LeaderboardEntry();

                entrySP.name  = localPlayerName;
                entrySP.kills = kills;
                entrySP.wave  = roundsBeaten;
                entrySP.time  = gameTime;

                leaderboard.AddLeaderboardEntry(entrySP);
            }
        }
        else
        {
            Debug.Log("Leaderboard prefab not found!");
        }

        // FMODUnity.RuntimeManager.GetBus("bus:/main").stopAllEvents(FMOD.Studio.STOP_MODE.IMMEDIATE);



        Destroy(this.gameObject);
    }
    public void GenerateLeaderboardEntriesMP()
    {
        List <GameObject> childList = new List <GameObject>();

        for (int i = 0; i < leaderboardEntryContainer.transform.childCount; i++)
        {
            if (leaderboardEntryContainer.transform.GetChild(i).name.Contains("(Clone)"))
            {
                childList.Add(leaderboardEntryContainer.transform.GetChild(i).gameObject);
            }
        }

        foreach (GameObject child in childList)
        {
            child.transform.SetParent(null);
            Destroy(child);
        }

        leaderboardEntryFieldList.Clear();
        leaderboardMP.entryList.Clear();

        for (int i = 0; i < UnityEngine.Random.Range(5, 40); i++)
        {
            LeaderboardEntryMP newEntry = new LeaderboardEntryMP {
                nameP1 = "player " + UnityEngine.Random.Range(0, 99).ToString(), nameP2 = "player " + UnityEngine.Random.Range(0, 99).ToString(), time = UnityEngine.Random.Range(0, 9999), kills = UnityEngine.Random.Range(0, 100), wave = UnityEngine.Random.Range(0, 30)
            };
            leaderboardMP.entryList.Add(newEntry);
        }

        foreach (LeaderboardEntryMP entry in leaderboardMP.entryList)
        {
            CreateLeaderboardEntryFieldMP(entry);
        }

        RectTransform rect = leaderboardEntryContainer.transform.GetComponent <RectTransform>();

        leaderboardEntryContainer.transform.GetComponent <RectTransform>().sizeDelta = new Vector2(rect.sizeDelta.x, (leaderboardEntryContainer.transform.childCount - 2) * entryFieldRect.height);

        Debug.Log("Generated new random MP entries");
    }
    public void AddLeaderboardEntryMP(LeaderboardEntryMP newEntry)
    {
        string oldBoardJson = PlayerPrefs.GetString("LeaderboardMP");

        if (oldBoardJson.Length > 0)
        {
            leaderboardMP = JsonUtility.FromJson <LeaderboardMP>(oldBoardJson);
        }
        else
        {
            leaderboardMP = new LeaderboardMP();
        }

        leaderboardMP.entryList.Add(newEntry);

        string newBoardJson = JsonUtility.ToJson(leaderboard);

        PlayerPrefs.SetString("LeaderboardMP", newBoardJson);
        PlayerPrefs.Save();

        Debug.Log("Leaderboard entry(MP) saved");
    }