120 lines
3.9 KiB
C#
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");
|
|
}
|
|
}
|
|
}
|