using System.Collections.Generic; using System.ComponentModel; using Cysharp.Threading.Tasks; public partial class SROptions { [Category("音频")] [DisplayName("音频ID")] public string AudioKey { set; get; } [Category("音频")] [DisplayName("播放音频")] public async void Play() { int audioID = AudioManager.Instance.PlayAudio(AudioKey); if (audioID < 0) { DebugUtil.LogError("Debug, Audio播放失败,请检查AudioID!"); } } [Category("音频")] [DisplayName("停止背景音乐")] public void StopBGM() { AudioManager.Instance.AudioMgrObj.StopBGM(); } [Category("音频")] [DisplayName("停止所有音频播放")] public void StopAll() { AudioManager.Instance.AudioMgrObj.StopAll(); } [Category("音频")] [DisplayName("多个音频同时播放")] public async void PlayMany() { List audios = new(); for (int i = 0; i < 10; i++) { var audio = AudioManager.Instance.GetStoryAudioInst(); audios.Add(audio); } await UniTask.Delay(1000); for (int i = 0; i < 10; i++) { var audio = audios[1]; //audio.Stop(); await UniTask.DelayFrame(2); audio.Play("CueSheet_Sound", "Sound_Shoot_3_1"); } await UniTask.Delay(1000); for (int i = 0; i < 10; i++) { var audio = audios[2]; //audio.Stop(); await UniTask.DelayFrame(2); audio.Play("CueSheet_Sound", "Sound_Shoot_3_1"); } await UniTask.Delay(1000); AudioManager.Instance.ReleaseStoryAudios(); } }