Files
bansonic_beta_main/Assets/songsDatabase/SongDataController/SongButton.cs
T
2025-06-02 00:48:08 +08:00

50 lines
1.6 KiB
C#

using UnityEngine;
using TMPro;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class SongButton : MonoBehaviour
{
public TextMeshProUGUI songNameText; // 歌曲名称文本
public TextMeshProUGUI highestScoreText; // 个人最高分文本
public TextMeshProUGUI difficultyIDText; // 难度ID文本
public TextMeshProUGUI songIDText;
public Image buttonImage; // 按钮的 Image 组件,用于设置背景图像
public int song_songSerialID; // 按钮对应的歌曲ID
// 设置按钮的数据
public void Start()
{
}
public void SetButtonData(string songName, int highestScore, int difficultyID, Sprite songSprite, int songID)
{
Debug.Log("SetButtonData 被调用, songID 参数: " + songID);
songNameText.text = songName;
highestScoreText.text = "PR: " + highestScore.ToString();
difficultyIDText.text = "" + difficultyID.ToString();
buttonImage.sprite = songSprite;
song_songSerialID = songID;
songIDText.text = "Song ID: " + song_songSerialID.ToString();
}
// 按钮点击事件:根据 song_songSerialID 查找对应的 SongData,并传递到下个场景
public void OnSongButtonClick()
{
Debug.Log("点击按钮的 song_songSerialID: " + song_songSerialID);
SongData selectedSong = SongDataLibrary.Instance.GetSongDataByID(song_songSerialID);
if (selectedSong != null)
{
SongDataHolder.SelectedSongData = selectedSong;
SceneManager.LoadScene("Songs_Select");
}
else
{
Debug.LogError("未找到对应的 SongData, songID: " + song_songSerialID);
}
}
}