rabidus-test/Assets/Graphy - Ultimate Stats Mon.../Runtime/Ram/G_RamText.cs

96 lines
3.2 KiB
C#
Raw Permalink Normal View History

2023-09-11 15:44:17 +03:00
/* ---------------------------------------
* Author: Martin Pane (martintayx@gmail.com) (@tayx94)
* Contributors: https://github.com/Tayx94/graphy/graphs/contributors
* Project: Graphy - Ultimate Stats Monitor
* Date: 05-Dec-17
* Studio: Tayx
*
* Git repo: https://github.com/Tayx94/graphy
*
* This project is released under the MIT license.
* Attribution is not required, but it is always welcomed!
* -------------------------------------*/
using UnityEngine;
using UnityEngine.UI;
using Tayx.Graphy.Utils.NumString;
namespace Tayx.Graphy.Ram
{
public class G_RamText : MonoBehaviour
{
#region Variables -> Serialized Private
[SerializeField] private Text m_allocatedSystemMemorySizeText = null;
[SerializeField] private Text m_reservedSystemMemorySizeText = null;
[SerializeField] private Text m_monoSystemMemorySizeText = null;
#endregion
#region Variables -> Private
private GraphyManager m_graphyManager = null;
private G_RamMonitor m_ramMonitor = null;
private float m_updateRate = 4f; // 4 updates per sec.
private float m_deltaTime = 0.0f;
#endregion
#region Methods -> Unity Callbacks
private void Awake()
{
Init();
}
private void Update()
{
m_deltaTime += Time.unscaledDeltaTime;
if (m_deltaTime > 1f / m_updateRate)
{
// Update allocated, mono and reserved memory
m_allocatedSystemMemorySizeText .text = ((int)m_ramMonitor.AllocatedRam).ToStringNonAlloc();
m_reservedSystemMemorySizeText .text = ((int)m_ramMonitor.ReservedRam).ToStringNonAlloc();
m_monoSystemMemorySizeText .text = ((int)m_ramMonitor.MonoRam).ToStringNonAlloc();
m_deltaTime = 0f;
}
}
#endregion
#region Methods -> Public
public void UpdateParameters()
{
m_allocatedSystemMemorySizeText .color = m_graphyManager.AllocatedRamColor;
m_reservedSystemMemorySizeText .color = m_graphyManager.ReservedRamColor;
m_monoSystemMemorySizeText .color = m_graphyManager.MonoRamColor;
m_updateRate = m_graphyManager.RamTextUpdateRate;
}
#endregion
#region Methods -> Private
private void Init()
{
// We assume no game will consume more than 16GB of RAM.
// If it does, who cares about some minuscule garbage allocation lol.
G_IntString.Init( 0, 16386 );
m_graphyManager = transform.root.GetComponentInChildren<GraphyManager>();
m_ramMonitor = GetComponent<G_RamMonitor>();
UpdateParameters();
}
#endregion
}
}