From 9ef63b49ccc6636d8c1bb5f1e04a2f22587d5487 Mon Sep 17 00:00:00 2001 From: Alee Date: Sun, 9 Jun 2019 13:18:33 -0400 Subject: Added Graphy --- .../Scripts/Audio/G_AudioText.cs | 103 +++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Audio/G_AudioText.cs (limited to 'Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Audio/G_AudioText.cs') diff --git a/Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Audio/G_AudioText.cs b/Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Audio/G_AudioText.cs new file mode 100644 index 0000000..8fd8ac7 --- /dev/null +++ b/Assets/Packages/Tayx/Graphy - Ultimate Stats Monitor/Scripts/Audio/G_AudioText.cs @@ -0,0 +1,103 @@ +/* --------------------------------------- + * Author: Martin Pane (martintayx@gmail.com) (@tayx94) + * Collaborators: Lars Aalbertsen (@Rockylars) + * Project: Graphy - Ultimate Stats Monitor + * Date: 15-Dec-17 + * Studio: Tayx + * + * 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.Audio +{ + public class G_AudioText : MonoBehaviour + { + /* ----- TODO: ---------------------------- + * Add summaries to the variables. + * Add summaries to the functions. + * Check if we should add a "RequireComponent" for "AudioMonitor". + * Improve the FloatString Init to come from the core instead. + * --------------------------------------*/ + + #region Variables -> Serialized Private + + [SerializeField] private Text m_DBText = null; + + #endregion + + #region Variables -> Private + + private GraphyManager m_graphyManager = null; + + private G_AudioMonitor m_audioMonitor = null; + + private int m_updateRate = 4; + + private float m_deltaTimeOffset = 0; + + #endregion + + #region Methods -> Unity Callbacks + + private void Awake() + { + Init(); + } + + private void Update() + { + if (m_audioMonitor.SpectrumDataAvailable) + { + if (m_deltaTimeOffset > 1f / m_updateRate) + { + m_deltaTimeOffset = 0f; + + m_DBText.text = Mathf.Clamp(m_audioMonitor.MaxDB, -80f, 0f).ToStringNonAlloc(); + } + else + { + m_deltaTimeOffset += Time.deltaTime; + } + } + } + + #endregion + + #region Methods -> Public + + public void UpdateParameters() + { + m_updateRate = m_graphyManager.AudioTextUpdateRate; + } + + #endregion + + #region Methods -> Private + + private void Init() + { + //TODO: Replace this with one activated from the core and figure out the min value. + if (!G_FloatString.Inited || G_FloatString.MinValue > -1000f || G_FloatString.MaxValue < 16384f) + { + G_FloatString.Init + ( + minNegativeValue: -1001f, + maxPositiveValue: 16386f + ); + } + + m_graphyManager = transform.root.GetComponentInChildren(); + + m_audioMonitor = GetComponent(); + + UpdateParameters(); + } + + #endregion + } +} \ No newline at end of file -- cgit v1.2.3