Hashtables в единстве с использованием - Photon Network 2 бесплатно - PullRequest
0 голосов
/ 18 апреля 2020

Прав ли я, говоря, что у каждого игрока есть свой игрок? и что я могу получить доступ к их сохраненным значениям через Player в списке игроков. (пожалуйста, пролите свет / помощь) Большое вам спасибо.

(// Вызывается на объекте сцены, который есть у каждого игрока на своей сцене.) объявляя хэш-таблицы как фотоны sh:

    using Hashtable = ExitGames.Client.Photon.Hashtable;

определенная хеш-таблица:

    Hashtable CustomHash = new ExitGames.Client.Photon.Hashtable();

//

    //Start() method:
    CustomHash.Add("Red",0);                                           
    CustomHash.Add("Blue",0);
    CustomHash.Add("Ready",0);
    PhotonNetwork.LocalPlayer.SetCustomProperties(CustomHash);
    PhotonNetwork.LocalPlayer.CustomProperties = CustomHash;
    checkteams();

   // used after checking teams to assign the player to the team with least players
    if(Blue <= red) { TeamSelection(1); }   
    if(red < Blue) { TeamSelection(2); }

public void CheckTeams()
     {
        if (!GameStarted)
       {
            red = 0;
            Blue = 0;
            PlayersReady = 0;
            BluePlayers_Text.text = "";
            RedPlayers_Text.text = "";
            foreach (Player player in PhotonNetwork.PlayerList)
            {
            Hashtable h = player.CustomProperties;  <---------------------------------------------
                //values are not being fetched here or there not being set in start on the clients. 
                string s = "";
                int R = (int)h["Red"];
                int B = (int)h["Blue"];
                int ready = (int)h["Ready"];
                if (R == 1)
                {
                    red++;
                    if (ready == 0) { s = ""; }
                    else if (ready == 1) { PlayersReady++; s = " (Ready)"; }
                    RedPlayers_Text.text = RedPlayers_Text.text.ToString() + player.NickName.ToString() + s.ToString() + "\n";
                    return;
                }
                if (B == 1)
                {
                    Blue++;
                    if (ready == 0) { s = ""; }
                    else if (ready == 1) { PlayersReady++; s = " (Ready)"; }
                    BluePlayers_Text.text = BluePlayers_Text.text.ToString() + player.NickName.ToString() + s.ToString() + "\n";
                    return;
                }
            }
         }
      }
...