From b8e3071376fd6a334cc99839e78f5bc1231d61d0 Mon Sep 17 00:00:00 2001 From: Oliver Wong Date: Fri, 8 May 2026 16:28:09 +0800 Subject: [PATCH] fix: Metronome may get a null AudioSystem.Instance. --- Assets/Scripts/OCES/Metronome.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/OCES/Metronome.cs b/Assets/Scripts/OCES/Metronome.cs index 3c35c9f..f6e3b2d 100644 --- a/Assets/Scripts/OCES/Metronome.cs +++ b/Assets/Scripts/OCES/Metronome.cs @@ -9,11 +9,16 @@ namespace OCES /// 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)