예제 #1
0
 public static PlayerTracker GetInstance()
 {
     if (instance == null)
     {
         instance = new PlayerTracker();
     }
     return(instance);
 }
예제 #2
0
 private TeamTracker()
 {
     foreach (GameObject player in PlayerTracker.GetInstance().GetPlayers())
     {
         AddTeamTrackingToPlayers(player);
     }
     PlayerTracker.GetInstance().OnPlayerAdded   += AddTeamTrackingToPlayers;
     PlayerTracker.GetInstance().OnPlayerRemoved += (GameObject player) => {
         CountTeams();
     };
 }
예제 #3
0
        private void CountTeams()
        {
            vips = inhumers = 0;
            foreach (GameObject player in PlayerTracker.GetInstance().GetPlayers())
            {
                if (player.GetComponent <PlayerDataForClients>().GetTeam() == PlayerDataForClients.TEAM_VIP)
                {
                    vips++;
                }
                else if (player.GetComponent <PlayerDataForClients>().GetTeam() == PlayerDataForClients.TEAM_INHUMER)
                {
                    inhumers++;
                }
            }

            if (OnTeamChanged != null)
            {
                OnTeamChanged(vips, inhumers);
            }
        }
예제 #4
0
 public void OnDestroy()
 {
     PlayerTracker.GetInstance().RemovePlayer(gameObject);
 }
예제 #5
0
 public override void OnStartLocalPlayer()
 {
     PlayerTracker.GetInstance().SetLocalPlayer(gameObject);
 }
예제 #6
0
 private void UpdatePlayerIsServer(GameObject player, bool isServer)
 {
     PlayerTracker.GetInstance().SetServerPlayer(gameObject);
 }
예제 #7
0
        public override void OnStartClient()
        {
            PlayerTracker.GetInstance().AddPlayer(gameObject);

            gameObject.GetComponent <PlayerDataForClients>().OnIsServerFlagUpdated += UpdatePlayerIsServer;
        }