繁体   English   中英

Unity Photon 定时器同步

[英]Unity Photon timer synchronization

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

我有 2 个团队 A 和 B。map 上还有一个区域,如果你进入它(只对一个团队),那么计时器从 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()来增加/减少您的计数。
然后在Update()方法中,如果您所在区域的玩家数量大于 0,则减少您的计时器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM