public bool ToggleScoreboard()
    {
        scoreboardCanvas.enabled = !scoreboardCanvas.enabled;
        if (scoreboardCanvas.enabled)
        {
            List <Scoreboard.Playerdata> data = Scoreboard.instance.GetScoreBoard();
            for (int i = 0; i < data.Count; i++)
            {
                GameObject item = Instantiate(scoreboardItemPrefab, scoreboardItemPrefab.transform.position, scoreboardItemPrefab.transform.rotation);
                scoreboardItemInstances.Add(item);
                ScoreboardItem scoreboardItem = item.GetComponent <ScoreboardItem>();
                scoreboardItem.playerName.text   = data[i].name;
                scoreboardItem.playerKills.text  = data[i].kills.ToString();
                scoreboardItem.playerDeaths.text = data[i].deaths.ToString();
                item.transform.SetParent(contentPanel, false);
            }
        }
        else
        {
            for (int i = 0; i < scoreboardItemInstances.Count; i++)
            {
                // We need to destroy the scoreboard items we instantiated
                Destroy(scoreboardItemInstances[i]);
            }
        }



        return(scoreboardCanvas.enabled);
    }
Example #2
0
 private void OnEnable()
 {
     foreach (Player player in GameManager.PlayerList)
     {
         ScoreboardItem scoreboardItem = Instantiate(scoreboardItemPrefab, scoreboardParent);
         scoreboardItem.Set(player);
     }
 }
Example #3
0
 public static Scoreboard ToData(this ScoreboardItem dto, float rating)
 {
     return(new Scoreboard {
         Name = dto.name,
         Deaths = dto.deaths,
         Frags = dto.deaths,
         Kills = dto.kills,
         Rating = rating
     });
 }
Example #4
0
 void Awake()
 {
     _maxNumber = 1;
     for (int i = 0; i < Count; i++)
     {
         GameObject     itemObj        = Instantiate(TemplateItem);
         ScoreboardItem scoreboardItem = itemObj.GetComponent <ScoreboardItem>();
         itemObj.transform.SetParent(transform, false);
         _itemList.Add(scoreboardItem);
         _numberList.Add(0);
         _maxNumber *= 10;
     }
     _maxNumber -= 1;
     TemplateItem.gameObject.SetActive(false);
 }
Example #5
0
 private void OnEnable()
 {
     CarHealthManager[] Drivers  = GameManager.instance.getallDrivers();
     HealthManager[]    Shooters = GameManager.instance.getallPlayers();
     foreach (HealthManager shooter in Shooters)
     {
         GameObject     itemGo = (GameObject)Instantiate(playerScoreBoardItem, playerList);
         ScoreboardItem item   = itemGo.GetComponent <ScoreboardItem>();
         item.setup(shooter.nickName, shooter.Kills, shooter.Team, shooter.Color, shooter.getLost());
     }
     foreach (CarHealthManager driver in Drivers)
     {
         GameObject     itemGo = (GameObject)Instantiate(playerScoreBoardItem, playerList);
         ScoreboardItem item   = itemGo.GetComponent <ScoreboardItem>();
         item.setup(driver.nickName, driver.Score, driver.Team, driver.Color, driver.Exploded);
     }
 }
Example #6
0
    /// <summary>
    /// 设置目标数字
    /// </summary>
    public void SetNumber(int number)
    {
        number = Mathf.Clamp(number, 0, _maxNumber);
        bool isIncreasing = number > Number;

        Number = number;

        int unit = Count - 1;   // 位

        while (unit >= 0)
        {
            _numberList[unit--] = number % 10;
            number /= 10;
        }

        for (int i = 0; i < _numberList.Count; i++)
        {
            ScoreboardItem item = _itemList[i];
            item.SetNumber(_numberList[i], 1f, isIncreasing);
        }
    }
Example #7
0
 public ServerMatche()
 {
     Scoreboard = new ScoreboardItem[0];
 }
Example #8
0
 public MatcheResult()
 {
     Scoreboard = new ScoreboardItem[0];
 }
Example #9
0
    private void RefreshScoreboard()
    {
        ScoreboardPlayer[] tmp = scores.ToArray();
        Array.Sort(tmp, (IComparer) new SyncListScoreboardPlayer.ScoreboardPlayerComparer());
        // Sort, then put up

        //foreach (ScoreboardPlayer scoreboardPlayer in tmp)
        for (int i = 0; i < scores.Count; i++)
        {
            ScoreboardPlayer scoreboardPlayer = tmp[i];
            Transform        foundItem;
            if ((foundItem = parentGroup.Find(scoreboardPlayer.id.ToString())) == null)
            {
                // Make a new UI item
                foundItem = GameObject.Instantiate(scoreboardItemPrefab, parentGroup).transform;
            }
            // Update
            foundItem.SetSiblingIndex(i);
            ScoreboardItem scoreboardItem = foundItem.GetComponent <ScoreboardItem>();
            scoreboardItem.gameObject.name = scoreboardPlayer.id.ToString();
            scoreboardItem.nameText.text   = scoreboardPlayer.name;
            scoreboardItem.score.text      = scoreboardPlayer.kills.ToString();
            scoreboardItem.assists.text    = scoreboardPlayer.assists.ToString();
            scoreboardItem.deaths.text     = scoreboardPlayer.deaths.ToString();
            scoreboardItem.ping.text       = scoreboardPlayer.ping;
            scoreboardItem.id = scoreboardPlayer.id;
            scoreboardItem.classIcon.sprite = classSpritePrefabHolder[scoreboardPlayer.classId];

            Color teamColor = Color.white;
            // All players are added, including spectators, who are not colored
            foreach (GameObject player in GameObject.FindGameObjectsWithTag("Player"))
            {
                //print(player.name + " " + player.GetComponent<NetworkBehaviour>().isLocalPlayer);
                BasePlayer basePlayer = player.GetComponent <BasePlayer>();
                int        playerId   = basePlayer.GetComponent <PlayerInput>().GetPlayerId();
                if (playerId == scoreboardPlayer.id)
                {
                    scoreboardItem.referredItem = player;
                    teamColor = basePlayer.GetComponent <PlayerStats>().teamColor;
                    if (player.GetComponent <NetworkBehaviour>().isLocalPlayer)
                    {
                        // Is the local player
                        scoreboardItem.nameText.fontStyle = FontStyle.Bold;
                        // TODO make it a different color, better
                        scoreboardItem.nameText.color = Color.black;
                    }
                }
            }
            foreach (Image image in scoreboardItem.teamImages)
            {
                image.color = teamColor;
            }
        }
        foreach (ScoreboardItem scoreboardItem in parentGroup.GetComponentsInChildren <ScoreboardItem>())
        {
            if (!scores.Find(scoreboardItem.id).found || (scoreboardItem.referredItem != null && !scoreboardItem.referredItem.activeInHierarchy))
            {
                // Delete if not found
                GameObject.Destroy(scoreboardItem.gameObject);
            }
        }

        //print ("Score synclist size: " + scores.Count);
    }