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