2025-09-24 11:24:38 +05:00

82 lines
1.3 KiB
C#

namespace TPSBR.UI
{
using UnityEngine;
using UnityEngine.InputSystem;
public class UIScoreboardView : UIView
{
// PRIVATE MEMBERS
[SerializeField]
private UIGameInfo _gameInfo;
[SerializeField]
private CanvasGroup _fader;
[SerializeField]
private float _fadeSpeed = 5f;
private UIScoreboard _board;
private float _targetAlpha;
// PUBLIC METHODS
public void Show()
{
_board.SetActive(true);
_targetAlpha = 1f;
if (Context.Runner != null)
{
_gameInfo.UpdateInfo(Context.Runner, true);
}
}
public void Hide(bool immediately = false)
{
_targetAlpha = 0f;
_board.SetActive(false);
if (immediately == true)
{
_fader.alpha = _targetAlpha;
}
}
// UIView INTERFAFCE
protected override void OnInitialize()
{
base.OnInitialize();
_board = GetComponentInChildren<UIScoreboard>(true);
}
protected override void OnOpen()
{
base.OnOpen();
Hide(true);
}
protected override void OnTick()
{
base.OnTick();
if (Keyboard.current.tabKey.isPressed == true && IsTopView(true) == true)
{
Show();
}
else
{
Hide();
}
_fader.alpha = Mathf.Lerp(_fader.alpha, _targetAlpha, Time.deltaTime * _fadeSpeed);
if (_targetAlpha <= 0.0f || Context.Runner == null)
return;
_gameInfo.UpdateInfo(Context.Runner);
}
}
}