fix: Metronome may get a null AudioSystem.Instance.

This commit is contained in:
2026-05-08 16:28:09 +08:00
parent 9496ae8bec
commit 97fcbe3ce4
+16 -3
View File
@@ -9,11 +9,16 @@ namespace OCES
/// </summary>
public class Metronome : MonoBehaviour
{
bool m_isRegistered;
void OnEnable()
{
AudioSystem.Instance.OnBeat += OnBeat;
AudioSystem.Instance.OnBar += OnBar;
AudioSystem.Instance.OnGrid += OnGrid;
if (AudioSystem.Instance != null) RegisterCallBack();
}
void Start()
{
if (!this.m_isRegistered) RegisterCallBack();
}
void OnDisable()
@@ -21,6 +26,14 @@ namespace OCES
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)