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> /// </summary>
public class Metronome : MonoBehaviour public class Metronome : MonoBehaviour
{ {
bool m_isRegistered;
void OnEnable() void OnEnable()
{ {
AudioSystem.Instance.OnBeat += OnBeat; if (AudioSystem.Instance != null) RegisterCallBack();
AudioSystem.Instance.OnBar += OnBar; }
AudioSystem.Instance.OnGrid += OnGrid;
void Start()
{
if (!this.m_isRegistered) RegisterCallBack();
} }
void OnDisable() void OnDisable()
@@ -21,6 +26,14 @@ namespace OCES
AudioSystem.Instance.OnBeat -= OnBeat; AudioSystem.Instance.OnBeat -= OnBeat;
AudioSystem.Instance.OnBar -= OnBar; AudioSystem.Instance.OnBar -= OnBar;
AudioSystem.Instance.OnGrid -= OnGrid; 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) static void OnBeat(uint containerId)