Files
Learning-UnityNGO/Assets/CONTENT/FEATURES/DEV-TEST/Scripts/UI/RoundManagerUIController.cs
T
2026-07-02 17:04:29 +03:00

50 lines
1.4 KiB
C#

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;
}
}