Unity3d PhotonTargets.AllBuffered не работает должным образом для главного клиента - PullRequest
0 голосов
/ 05 июня 2019

Я делаю командную игру Deathmatch, когда кто-то умер, умерший парень вызывает метод RPC, который добавляет счет против команды через PhotonTargets. Все размещено в моем скрипте менеджера игр.

У меня проблема:

Обычные клиенты убивают друг друга, и счет команды 2-2, но когда мастер-клиент убивает кого-то, это должно быть 3-2, это работает только для тех, кто играет в это время. Но если кто-то присоединится к игре позже, они все еще видят Счет 2-2. Так что это не работает только для добавленной оценки главного клиента.

Это скрипт здоровья игрока

[PunRPC]
 public void TestDmg(int damage,string shootername)
 {
     health -= damage;

     if (health <= 0)
     {
         if (photonView.isMine)
         {                         
             if (GetComponent<TeamBase>().myTeam == TeamBase.Team.team1)
             {
                 gameManager.photonView.RPC("AddScoreToTeam2", PhotonTargets.AllBuffered,10);
             }
             else if (GetComponent<TeamBase>().myTeam == TeamBase.Team.team2)
             {
                 gameManager.photonView.RPC("AddScoreToTeam1", PhotonTargets.AllBuffered, 10);
             }

         }

         health = 100;
     }

 }

Это скрипт диспетчера игр

[PunRPC]
 public void AddScoreToTeam1(int score)
 {       
    team1Score += score;
 }

 [PunRPC]
 public void AddScoreToTeam2(int score)
 {   
     team2Score  += score;   
 }
...