You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
1.7 KiB
C#
88 lines
1.7 KiB
C#
using Fusion;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
|
|
namespace Projectiles.UI
|
|
{
|
|
public class UIGameInfo : UIBehaviour
|
|
{
|
|
// PRIVATE MEMBERS
|
|
|
|
[SerializeField]
|
|
private TextMeshProUGUI _sessionNameText;
|
|
[SerializeField]
|
|
private TextMeshProUGUI _regionText;
|
|
[SerializeField]
|
|
private TextMeshProUGUI _fpsText;
|
|
[SerializeField]
|
|
private TextMeshProUGUI _rttText;
|
|
[SerializeField]
|
|
private TextMeshProUGUI _connectionTypeText;
|
|
|
|
private int _lastFPS;
|
|
private int _lastRTT = -1;
|
|
private int _frameCount;
|
|
private float _deltaTime;
|
|
private double _rtt;
|
|
private ConnectionType _connectionType;
|
|
|
|
// MONOBEHAVIOUR
|
|
|
|
protected void OnEnable()
|
|
{
|
|
UpdateInfo(GameUI.Runner, true);
|
|
}
|
|
|
|
protected void Update()
|
|
{
|
|
UpdateInfo(GameUI.Runner);
|
|
}
|
|
|
|
// PRIVATE MEMBERS
|
|
|
|
private void UpdateInfo(NetworkRunner runner, bool full = false)
|
|
{
|
|
if (runner == null)
|
|
return;
|
|
|
|
_frameCount++;
|
|
|
|
_deltaTime += Time.deltaTime;
|
|
_rtt += runner.GetPlayerRtt(runner.LocalPlayer);
|
|
|
|
if (_deltaTime > 0.25f)
|
|
{
|
|
int fps = Mathf.RoundToInt(_frameCount / _deltaTime);
|
|
if (fps != _lastFPS)
|
|
{
|
|
_lastFPS = fps;
|
|
_fpsText.text = fps.ToString();
|
|
}
|
|
|
|
int rtt = (int)(_rtt * 1000.0 / _frameCount);
|
|
if (rtt != _lastRTT)
|
|
{
|
|
_lastRTT = rtt;
|
|
_rttText.text = rtt > 0 ? rtt.ToString() : "---";
|
|
}
|
|
|
|
_frameCount = 0;
|
|
_deltaTime = 0f;
|
|
_rtt = 0.0;
|
|
}
|
|
|
|
if (_connectionType != runner.CurrentConnectionType)
|
|
{
|
|
_connectionType = runner.CurrentConnectionType;
|
|
_connectionTypeText.text = _connectionType.ToString();
|
|
}
|
|
|
|
if (full == true)
|
|
{
|
|
_sessionNameText.text = runner.SessionInfo.Name;
|
|
_regionText.text = runner.SessionInfo.Region;
|
|
}
|
|
}
|
|
}
|
|
}
|