using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class MusicPlayer : MonoBehaviour { public Image Image_Cover; public TMP_Text Text_Title; public TMP_Text Text_Time; public Button Button_Play; public Button Button_Pause; public Button Button_Last; public Button Button_Next; public Button Button_List; public Slider Slider_Progress; public Music_Data Music_Data => Music_Mgr.Singleton.Music_Cur; public static AudioSource Music_Source { get { BgmPlaybackManager bgm = BgmPlaybackManager.Instance; if (bgm != null && bgm.audioSource != null) { return bgm.audioSource; } Music_Mgr manager = Music_Mgr.Singleton; return manager != null ? manager.AudioSource : null; } } private void Start() { if (Music_Data != null) { Refresh(Music_Data); } } public void Refresh(Music_Data data) { Image_Cover.sprite = data.Cover; Text_Title.text = data.Name; } private System.Text.StringBuilder _sb = new System.Text.StringBuilder(); private void Update() { AudioSource source = Music_Source; if (source != null && source.clip != null) { _sb.Clear(); _sb.Append(Music_Mgr.Get_Time_Cur(source)).Append("/").Append(Music_Mgr.Get_Time_Max(source.clip)); Text_Time.text = _sb.ToString(); } } }