using UnityEngine.UI;
|
using UnityEngine;
|
using EnhancedUI;
|
using EnhancedUI.EnhancedScroller;
|
using TMPro;
|
using UnityEngine.SceneManagement;
|
using KTGMGemClient;
|
|
public class FinalPanel : MonoBehaviour, IEnhancedScrollerDelegate
|
{
|
private EnhancedScroller scroller;
|
|
private SmallList<FinalPanelItemData> _data;
|
|
public EnhancedScrollerCellView cellViewPrefab;
|
[SerializeField]
|
private Sprite rank_di_0, rank_di_1, rank_di_2, rank_di_03;
|
[SerializeField]
|
private Sprite rank_icon_0, rank_icon_1, rank_icon_2;
|
|
|
public string endlessGameScene = "Endless";
|
|
public string loadingScene = "LoadingScene";
|
// Start is called before the first frame update
|
void Start()
|
{
|
|
transform.Find("BackGround").GetComponent<Button>().onClick.AddListener(() =>
|
{
|
gameObject.SetActive(false);
|
GameConfig.NextSceneName = endlessGameScene;
|
SceneManager.LoadScene(loadingScene);
|
});
|
}
|
|
/// <summary>
|
/// 入口函数
|
/// </summary>
|
/// <param name="waveInfo">成绩 25关 3波</param>
|
/// <param name="myScore">789220</param>
|
public void SetData(string waveInfo, int myScore)
|
{
|
transform.Find("Text_Wave").GetComponent<Text>().text = waveInfo;
|
int hScore = PlayerPrefs.GetInt("GemBattleHScore");
|
if (myScore > hScore)
|
{
|
PlayerPrefs.SetInt("GemBattleHScore", myScore);
|
hScore = myScore;
|
}
|
|
transform.Find("Text_Score").GetComponent<Text>().text = myScore.ToString();
|
transform.Find("Text_HScore").GetComponent<TextMeshProUGUI>().text = hScore.ToString();
|
|
scroller = transform.Find("Scroller").GetComponent<EnhancedScroller>();
|
|
scroller.Delegate = this;
|
|
LoadLargeData(hScore);
|
}
|
|
private void LoadLargeData(int hScore)
|
{
|
_data = new SmallList<FinalPanelItemData>();
|
FinalPanelItemData data;
|
int score = 101;
|
for (var i = 0; i < 100; i++)
|
{
|
data = new FinalPanelItemData();
|
data.score = score - i;
|
data.index = i + 1;
|
data.playerName = "游客" + i.ToString();
|
data.spriteIcon = null;
|
data.spriteBackGround = rank_di_03;
|
_data.Add(data);
|
}
|
|
_data[0].playerName = "自己";
|
_data[0].score = hScore;
|
_data[0].spriteIcon = rank_icon_0;
|
_data[0].spriteBackGround = rank_di_0;
|
|
_data[1].spriteIcon = rank_icon_1;
|
_data[1].spriteBackGround = rank_di_1;
|
|
_data[2].spriteIcon = rank_icon_2;
|
_data[2].spriteBackGround = rank_di_2;
|
// tell the scroller to reload now that we have the data
|
scroller.ReloadData();
|
}
|
|
#region EnhancedScroller Handlers
|
|
|
/// <summary>
|
/// 个数
|
/// </summary>
|
/// <param name="scroller"></param>
|
/// <returns></returns>
|
public int GetNumberOfCells(EnhancedScroller scroller)
|
{
|
return _data.Count;
|
}
|
|
|
/// <summary>
|
/// 控制item的大小
|
/// </summary>
|
/// <param name="scroller"></param>
|
/// <param name="dataIndex"></param>
|
/// <returns></returns>
|
public float GetCellViewSize(EnhancedScroller scroller, int dataIndex)
|
{
|
return 70f;
|
//return (dataIndex % 2 == 0 ? 30f : 100f);
|
}
|
|
/// <summary>
|
/// 渲染
|
/// </summary>
|
/// <param name="scroller"></param>
|
/// <param name="dataIndex"></param>
|
/// <param name="cellIndex"></param>
|
/// <returns></returns>
|
public EnhancedScrollerCellView GetCellView(EnhancedScroller scroller, int dataIndex, int cellIndex)
|
{
|
FinalPanelItem cellView = scroller.GetCellView(cellViewPrefab) as FinalPanelItem;
|
|
cellView.SetData(_data[dataIndex]);
|
return cellView;
|
}
|
|
#endregion
|
|
}
|
|
public class FinalPanelItemData
|
{
|
public string playerName;
|
public int score;
|
public int index;
|
|
public Sprite spriteIcon;
|
public Sprite spriteBackGround;
|
|
}
|