using System.Collections.Generic; using System.ComponentModel; using Cysharp.Threading.Tasks; using UnityEngine; 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 async void _PlayTest() { var audioName = "Sound_armoredcar_stop"; var obj = new GameObject("Test"); var cacheId = AudioManager.Instance.PlayAudio("Sound_armoredcar_moveloop", AudioCriManager.EPlayType.Sound, obj, true); await UniTask.WaitForSeconds(2); AudioManager.Instance.StopByID(cacheId); var cacheId2 = AudioManager.Instance.PlayAudio(audioName, AudioCriManager.EPlayType.Sound, obj); DebugUtil.LogError("cacheId:" + cacheId + " cacheId2:" + cacheId2); } [Category("音频")] [DisplayName("停止背景音乐")] public void StopBGM() { AudioManager.Instance.AudioMgrObj.StopBGM(); } [Category("音频")] [DisplayName("停止所有音频播放")] public void StopAll() { AudioManager.Instance.AudioMgrObj.StopAll(); } [Category("音频")] [DisplayName("播放BGM")] public void PlayBGM() { //AudioManager.Instance.StopAll(); AudioManager.Instance.PlayAudio("ui_common_back", AudioCriManager.EPlayType.Sound, null, true); } [Category("音频")] [DisplayName("播放BGM Fader")] public void PlayBGMFader() { //AudioManager.Instance.StopAll(); AudioManager.Instance.PlayAudio("bgm_19", AudioCriManager.EPlayType.Music, null, true); } [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(); } [Category("视频")] [DisplayName("播放PV")] public async void PlayPvAnim() { await UI_PVAnimaPlayController.Open("Assets/Video/LevelIntro/LevelIntro_PV.mp4", () => { DebugUtil.Log("GM播放PV完毕"); }); } }