Files
Ipseity-Demo/Assets/Unheimlich_POC/Scripts/Audio/DiapasonDebugger.cs
T

120 lines
3.9 KiB
C#

using UnityEngine;
using Unheimlich.Gameplay.Player;
namespace Unheimlich.Audio
{
public class DiapasonDebugger : MonoBehaviour
{
[Header("Debug Display")]
[SerializeField] private bool _showDebugInfo = true;
[SerializeField] private bool _showGizmos = true;
[SerializeField] private Color _listeningRangeColor = Color.cyan;
[SerializeField] private Color _activeTargetColor = Color.green;
private DiapasonListeningHandler _listeningHandler;
private AudioListenable[] _allListenables;
private void Awake()
{
_listeningHandler = DiapasonListeningHandler.Instance;
}
private void Start()
{
RefreshListenablesList();
}
private void OnGUI()
{
if (!_showDebugInfo || _listeningHandler == null)
return;
GUILayout.BeginArea(new Rect(10, 10, 300, 200));
GUILayout.Box("Diapason System Debug");
GUILayout.Label($"Is Listening: {_listeningHandler.IsListening}");
GUILayout.Label($"Is Concentrating: {_listeningHandler.IsConcentrating}");
if (_allListenables != null)
GUILayout.Label($"Total Listenables: {_allListenables.Length}");
if (GUILayout.Button("Refresh Listenables List"))
RefreshListenablesList();
if (GUILayout.Button("Toggle Debug Gizmos"))
_showGizmos = !_showGizmos;
GUILayout.EndArea();
}
private void RefreshListenablesList()
{
_allListenables = FindObjectsByType<AudioListenable>(FindObjectsSortMode.None);
Debug.Log($"Found {_allListenables.Length} AudioListenable objects in scene");
}
private void OnDrawGizmos()
{
if (!_showGizmos)
return;
if (_allListenables == null)
_allListenables = FindObjectsByType<AudioListenable>(FindObjectsSortMode.None);
foreach (AudioListenable listenable in _allListenables)
{
if (listenable == null)
continue;
Gizmos.color = _listeningRangeColor;
Gizmos.DrawIcon(listenable.transform.position, "sv_icon_dot3_pix16_gizmo", true);
Gizmos.color = new Color(_listeningRangeColor.r, _listeningRangeColor.g, _listeningRangeColor.b, 0.1f);
Gizmos.DrawSphere(listenable.transform.position, 0.2f);
}
if (_listeningHandler != null && _listeningHandler.IsListening)
{
Gizmos.color = _activeTargetColor;
}
}
[ContextMenu("List All Listenables")]
private void ListAllListenables()
{
RefreshListenablesList();
Debug.Log("=== Audio Listenables in Scene ===");
foreach (AudioListenable listenable in _allListenables)
{
if (listenable != null)
Debug.Log($"- {listenable.gameObject.name} (Type: {listenable.GetType().Name})");
}
}
[ContextMenu("Enable All Listenables")]
private void EnableAllListenables()
{
RefreshListenablesList();
foreach (AudioListenable listenable in _allListenables)
{
if (listenable != null)
listenable.enabled = true;
}
Debug.Log("Enabled all AudioListenable components");
}
[ContextMenu("Disable All Listenables")]
private void DisableAllListenables()
{
RefreshListenablesList();
foreach (AudioListenable listenable in _allListenables)
{
if (listenable != null)
listenable.enabled = false;
}
Debug.Log("Disabled all AudioListenable components");
}
}
}