using OCES.Audio; using UnityEngine; namespace OCES { /// /// Drag this component to any game object. /// Then you will get a metronome :) /// 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"); } } }