feat: add PlayOnTrigger for music-synced audio playback

- Add PlayOnTrigger method to AudioSystem for scheduling audio playback on music sync events (beat/bar/grid)
- Rename ButtonInvoker to SetStateBind for better clarity
- Update PlaySoundBind to support both direct playback and trigger-based playback with callback flags
- Add CallbackFlags enum (MusicSyncBeat, MusicSyncBar, MusicSyncGrid)
- Update Metronome demo to use new callback flag naming convention
- Add test audio file sfx_notice_test.wav
- Update scene UI to demonstrate PlayOnTrigger functionality
This commit is contained in:
2026-04-16 14:39:58 +08:00
parent a4e6e6eccb
commit 91f1b18771
11 changed files with 102 additions and 127 deletions
+11 -4
View File
@@ -2,16 +2,23 @@ using System.Collections;
using System.Collections.Generic;
using OCES.Audio;
using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.UI;
public class PlaySoundBind : MonoBehaviour
{
public CallbackFlags callbackFlags;
public InputField inputField;
public void OnButtonPressed()
public void PlaySound()
{
uint.TryParse(this.inputField.text, out uint hapticId);
AudioSystem.Instance.Play(hapticId);
uint.TryParse(this.inputField.text, out uint audioId);
AudioSystem.Instance.Play(audioId);
}
public void PlaySoundOnTrigger()
{
uint.TryParse(this.inputField.text, out uint audioId);
AudioSystem.Instance.PlayOnTrigger(audioId, this.callbackFlags);
}
}