using System; using UnityEngine; using UnityEngine.UI; using ZXKFramework; namespace YiLiao.XinFeiTingZhen { public class AudioPanel : UIBase { // 1. 在Inspector中拖拽播放按钮 public Button playButton; // 2. 在Inspector中拖拽暂停按钮 public Button pauseButton; // 3. 在Inspector中拖拽音量Slider public Slider volumeSlider; // 4. 在Inspector中拖拽显示百分比的Text public Text volumeText; // 引用自身的 AudioSource 组件 public AudioSource audioSource; public override string GroupName => "AudioPanel"; public override string Name => "AudioPanel"; public override void Init(IUIManager uictrl) { base.Init(uictrl); // 添加事件监听 if (playButton != null) { playButton.onClick.AddListener(PlayAudio); } if (pauseButton != null) { pauseButton.onClick.AddListener(PauseAudio); } if (volumeSlider != null) { volumeSlider.onValueChanged.AddListener(OnVolumeChanged); } } /// /// 从 Resources/Sounds 文件夹加载音频 /// public void LoadAudioClip(string fileName) { AudioClip clip = Resources.Load("XinFeiTingZhen/Sounds/" + fileName); if (clip != null) { audioSource.clip = clip; audioSource.loop = true; // 设置为循环播放 PlayAudio(); Debug.Log("音频加载成功: " + fileName); } else { Debug.LogError("未找到音频文件: Resources/XinFeiTingZhen/Sounds/" + fileName); PauseAudio(); } } /// /// 播放音频 /// public void PlayAudio() { audioSource.Play(); playButton.gameObject.SetActive(false); pauseButton.gameObject.SetActive(true); } /// /// 暂停音频 /// public void PauseAudio() { audioSource.Pause(); playButton.gameObject.SetActive(true); pauseButton.gameObject.SetActive(false); } /// /// 音量改变事件 /// /// 0到1之间的值 void OnVolumeChanged(float value) { audioSource.volume = value; // 更新文本显示 (例如 0.4 -> 40%) volumeText.text = Mathf.RoundToInt(value * 100) + "%"; } } }