unity Photon定时器同步

Unity Photon timer synchronization

我正在使用 Unity Photon 进行团队合作多人游戏。

我有2个队伍A和B,地图上也有一个区域,如果你进入它(只对一个队伍),那么计时器从10秒开始减少,当值为0时,某个动作发生。该区域通过 OnTriggerStay 工作。我对此有困难:当一名球员进入该区域时,一切正常,计时器以正常速度从 10 秒趋向于 0,但是,当来自同一团队的另一名球员进入时,计时器 通过两倍。我需要一个 普通 多人游戏倒计时计时器,用于此区域,而不是 x2 多秒。

private double _timeToNewScore = 10f;
private double _time;
private bool hasCapturedOne

private List <Health> team1players;

private void OnTriggerStay(Collider other) 
{ 
 if (hasCapturedOne) 
 { 
   foreach (Health p in team1players) 
    { 
     ScorePointsFromPeriod(1); 
    }
 }
}

 private void ScorePointsFromPeriod(int team)
 {
         _time += Time.deltaTime; 
         if (_time >= _timeToNewScore)
         {
             DoSomething();
         }
 }

如果区域中有 2 个队友,请帮助我避免计时器中的秒数增加。谢谢

我这样做的方法是让一些 int 存储您所在区域的玩家数量,并检查那里是否有 至少一个 玩家(您可以使用 OnTriggerEnter()OnTriggerExit() 来 increment/decrement 您的计数。
然后在 Update() 方法中,如果您所在区域的玩家数量大于 0

,则减少计时器