Files

58 lines
1.4 KiB
C#

using OCES.Audio;
using UnityEngine;
namespace OCES
{
/// <summary>
/// Drag this component to any game object.
/// Then you will get a metronome :)
/// </summary>
public class Metronome : MonoBehaviour
{
bool m_isRegistered;
void OnEnable()
{
if (AudioSystem.Instance) RegisterCallBack();
}
void Start()
{
if (!this.m_isRegistered) RegisterCallBack();
}
void OnDisable()
{
AudioSystem.Instance.OnBeat -= OnBeat;
AudioSystem.Instance.OnBar -= OnBar;
AudioSystem.Instance.OnGrid -= OnGrid;
this.m_isRegistered = true;
}
void RegisterCallBack()
{
AudioSystem.Instance.OnBeat += OnBeat;
AudioSystem.Instance.OnBar += OnBar;
AudioSystem.Instance.OnGrid += OnGrid;
}
static void OnBeat(uint containerId)
{
AudioSystem.Instance.Play(52);
Debug.Log($"Container {containerId} is MusicSyncBeat");
}
static void OnBar(uint containerId)
{
AudioSystem.Instance.Play(53);
Debug.Log($"Container {containerId} is MusicSyncBar");
}
static void OnGrid(uint containerId)
{
AudioSystem.Instance.Play(54);
Debug.Log($"Container {containerId} is MusicSyncGrid");
}
}
}