我使用团结光子进行团队合作多人游戏。
我有两个团队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();
}
}请帮助我避免乘以秒的计时器,如果有两个队友在区域内。thx
发布于 2020-04-21 23:06:39
我这样做的方法是让一些int存储您所在区域的玩家数量,并检查那里是否至少有一个玩家(您可以使用OnTriggerEnter()和OnTriggerExit()来增加/减少计数。
然后在Update()方法中,如果区域内的玩家数量大于0,则减少计时器。
https://stackoverflow.com/questions/61354081
复制相似问题