Added UI and more
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class RoundManagerUIController : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private RoundManagerView view;
|
||||
|
||||
private RoundManager roundManager;
|
||||
private ulong localClientId;
|
||||
|
||||
public void Bind(RoundManager _roundManager, ulong _localClientId)
|
||||
{
|
||||
roundManager = _roundManager;
|
||||
localClientId = _localClientId;
|
||||
|
||||
roundManager.TimerChanged += OnTimerChanged;
|
||||
roundManager.RoundChanged += OnRoundChanged;
|
||||
roundManager.ScoresChanged += OnScoresChanged;
|
||||
|
||||
// События срабатывают только при изменении — сразу показываем текущее состояние
|
||||
OnRoundChanged(roundManager.CurrentRound);
|
||||
OnTimerChanged(roundManager.RoundTimeRemaining);
|
||||
OnScoresChanged();
|
||||
}
|
||||
|
||||
public void OnTimerChanged(float _timer)
|
||||
{
|
||||
view.UpdateTimer(_timer);
|
||||
}
|
||||
|
||||
public void OnRoundChanged(int _round)
|
||||
{
|
||||
view.UpdateCurrentRound(_round);
|
||||
}
|
||||
|
||||
public void OnScoresChanged()
|
||||
{
|
||||
view.UpdateOwnerScore(roundManager.GetScore(localClientId));
|
||||
view.UpdateEnemyScore(roundManager.GetEnemyScore(localClientId));
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (roundManager == null) return;
|
||||
|
||||
roundManager.TimerChanged -= OnTimerChanged;
|
||||
roundManager.RoundChanged -= OnRoundChanged;
|
||||
roundManager.ScoresChanged -= OnScoresChanged;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user