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
,则减少计时器
我正在使用 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