提交界面

This commit is contained in:
DESKTOP-SAJ6RKV\Administrator 2025-05-14 19:15:43 +08:00
parent 1997aa9b86
commit 4f32edc6a5
4 changed files with 1896 additions and 4030 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using TEngine; using TEngine;
using System.Collections.Generic; using TMPro;
namespace GameLogic namespace GameLogic
{ {
@ -9,276 +9,47 @@ namespace GameLogic
class UIGameRankForm : UIWindow class UIGameRankForm : UIWindow
{ {
#region #region
private Text m_text_Title; private TextMeshProUGUI m_tmp_TitleName;
private RectTransform m_rect_RankModel;
private Toggle m_toggle_MyRank;
private Toggle m_toggle_WeekRank;
private Toggle m_toggle_Rank;
private RectTransform m_rect_TopPanel;
private LoopListView m_loopListView_View; private LoopListView m_loopListView_View;
private Image m_img_RankIndex;
private TextMeshProUGUI m_tmp_PlayerName;
private TextMeshProUGUI m_tmp_Score;
private TextMeshProUGUI m_tmp_Count;
private TextMeshProUGUI m_tmp_LocalScore;
private TextMeshProUGUI m_tmp_RankIndex;
private Button m_btn_Rank;
private Button m_btn_Close; private Button m_btn_Close;
private Button m_btn_Main; private Button m_btn_Rest;
private Button m_btn_CloseMain;
protected override void ScriptGenerator() protected override void ScriptGenerator()
{ {
m_text_Title = FindChildComponent<Text>("Bg/m_text_Title"); m_tmp_TitleName = FindChildComponent<TextMeshProUGUI>("Bg/Image (1)/m_tmp_TitleName");
m_rect_RankModel = FindChildComponent<RectTransform>("Bg/m_rect_RankModel");
m_toggle_MyRank = FindChildComponent<Toggle>("Bg/m_rect_RankModel/m_toggle_MyRank");
m_toggle_WeekRank = FindChildComponent<Toggle>("Bg/m_rect_RankModel/m_toggle_WeekRank");
m_toggle_Rank = FindChildComponent<Toggle>("Bg/m_rect_RankModel/m_toggle_Rank");
m_rect_TopPanel = FindChildComponent<RectTransform>("Bg/m_rect_TopPanel");
m_loopListView_View = FindChildComponent<LoopListView>("Bg/ScrollViewPanel/m_loopListView_View"); m_loopListView_View = FindChildComponent<LoopListView>("Bg/ScrollViewPanel/m_loopListView_View");
m_img_RankIndex = FindChildComponent<Image>("Bg/ScrollViewPanel/m_loopListView_View/Viewport/Content/RankItem/m_img_RankIndex");
m_tmp_PlayerName = FindChildComponent<TextMeshProUGUI>("Bg/ScrollViewPanel/m_loopListView_View/Viewport/Content/RankItem/m_tmp_PlayerName");
m_tmp_Score = FindChildComponent<TextMeshProUGUI>("Bg/ScrollViewPanel/m_loopListView_View/Viewport/Content/RankItem/m_tmp_Score");
m_tmp_Count = FindChildComponent<TextMeshProUGUI>("Bg/ScrollViewPanel/m_loopListView_View/Viewport/Content/RankItem/m_tmp_Count");
m_tmp_LocalScore = FindChildComponent<TextMeshProUGUI>("Bg/ScrollViewPanel/m_loopListView_View/Viewport/Content/RankItem/m_tmp_LocalScore");
m_tmp_RankIndex = FindChildComponent<TextMeshProUGUI>("Bg/ScrollViewPanel/m_loopListView_View/Viewport/Content/RankItem/Image (1)/m_tmp_RankIndex");
m_btn_Rank = FindChildComponent<Button>("Bg/m_btn_Rank");
m_btn_Close = FindChildComponent<Button>("Bg/m_btn_Close"); m_btn_Close = FindChildComponent<Button>("Bg/m_btn_Close");
m_btn_Main = FindChildComponent<Button>("Bg/m_btn_Main"); m_btn_Rest = FindChildComponent<Button>("Bg/m_btn_Rest");
m_btn_CloseMain = FindChildComponent<Button>("Bg/m_btn_CloseMain"); m_btn_Rank.onClick.AddListener(OnClick_RankBtn);
m_toggle_MyRank.onValueChanged.AddListener(OnToggle_MyRankChange);
m_toggle_WeekRank.onValueChanged.AddListener(OnToggle_WeekRankChange);
m_toggle_Rank.onValueChanged.AddListener(OnToggle_RankChange);
m_btn_Close.onClick.AddListener(OnClick_CloseBtn); m_btn_Close.onClick.AddListener(OnClick_CloseBtn);
m_btn_Main.onClick.AddListener(OnClick_MainBtn); m_btn_Rest.onClick.AddListener(OnClick_RestBtn);
m_btn_CloseMain.onClick.AddListener(OnClick_CloseMainBtn);
} }
#endregion #endregion
#region #region
private void OnClick_MainBtn() private void OnClick_RankBtn()
{ {
GameModule.UI.CloseUI<UIGameBattle>();
GameModule.UI.CloseUI<UIGameRankForm>();
GameSceneProcedure onEnterGameAppProcedure = GameModule.Procedure.CurrentProcedure as GameSceneProcedure;
if (onEnterGameAppProcedure != null)
{
onEnterGameAppProcedure.GotoMain();
}
} }
private void OnClick_CloseBtn() private void OnClick_CloseBtn()
{ {
GameModule.UI.CloseUI<UIGameRankForm>();
} }
private void OnClick_RestBtn()
private void OnClick_CloseMainBtn()
{ {
GameModule.UI.CloseUI<UIGameRankForm>();
} }
private void OnToggle_MyRankChange(bool isOn)
{
// 待定
if (isOn)
{
if (gameRankType == GameRankType.)
{
return;
}
gameRankType = GameRankType.;
m_text_Title.text = "当局排行榜";
m_PlayRankDatas = UserDatas[1] as List<PlayRankData>;
// 刷新UI
OnRefreshUI();
}
}
private async void OnToggle_WeekRankChange(bool isOn)
{
if (isOn)
{
if (gameRankType == GameRankType.)
{
return;
}
gameRankType = GameRankType.;
m_text_Title.text = "本周排行榜";
if (m_PlayRankDatasWeek == null)
{
// 请求数据
List<PlayRankData> playRankDatas = await DataGameModelManager.Instance.C2S_GetResultRank(1);
if (playRankDatas == null || playRankDatas.Count == 0)
{
UITip.ShowMessageBox("当前榜单为空.", MessageShowType.OneButton, () =>
{
}, () =>
{
//Application.Quit();
});
return;
}
// 赋值
m_PlayRankDatas = playRankDatas;
m_PlayRankDatasWeek = m_PlayRankDatas;
}
else
{
m_PlayRankDatas = m_PlayRankDatasWeek;
}
// 刷新UI
OnRefreshUI();
}
}
private async void OnToggle_RankChange(bool isOn)
{
if (isOn)
{
if (gameRankType == GameRankType.)
{
return;
}
gameRankType = GameRankType.;
m_text_Title.text = "本月排行榜";
if (m_PlayRankDatasYue == null)
{
// 请求数据
List<PlayRankData> playRankDatas = await DataGameModelManager.Instance.C2S_GetResultRank(0);
if (playRankDatas == null || playRankDatas.Count == 0)
{
UITip.ShowMessageBox("当前榜单为空.", MessageShowType.OneButton, () =>
{
}, () =>
{
//Application.Quit();
});
return;
}
// 赋值
m_PlayRankDatas = playRankDatas;
m_PlayRankDatasYue = playRankDatas;
}
else
{
m_PlayRankDatas = m_PlayRankDatasYue;
}
// 刷新UI
OnRefreshUI();
}
}
#endregion #endregion
private GameRankType gameRankType;
private List<PlayRankData> m_PlayRankDatas;
private List<PlayRankData> m_PlayRankDatasWeek;
private List<PlayRankData> m_PlayRankDatasYue;
protected override void OnCreate()
{
base.OnCreate();
gameRankType = (GameRankType)UserDatas[0]; // 第一位是排行榜标识,第二位是传入请求排行榜的数据
m_PlayRankDatas = UserDatas[1] as List<PlayRankData>;
// 说明并非结算进来的
if (gameRankType == GameRankType.)
{
gameRankType = GameRankType.;
m_rect_RankModel.GetChild(0).gameObject.SetActive(false);
m_toggle_WeekRank.isOn = true;
m_text_Title.text = "本周排行榜";
m_btn_Main.gameObject.SetActive(false);
m_btn_Close.gameObject.SetActive(false);
m_btn_CloseMain.gameObject.SetActive(true);
m_PlayRankDatasWeek = m_PlayRankDatas;
}
else
{
gameRankType = GameRankType.;
m_rect_RankModel.GetChild(0).gameObject.SetActive(true);
m_toggle_MyRank.isOn = true;
m_text_Title.text = "当局排行榜";
m_btn_Main.gameObject.SetActive(true);
m_btn_Close.gameObject.SetActive(true);
m_btn_CloseMain.gameObject.SetActive(false);
}
OnRefreshTop();
m_loopListView_View.InitListView((m_PlayRankDatas.Count - 3) <= 0 ? 0 : m_PlayRankDatas.Count - 3, OnGetItemByIndex);
m_loopListView_View.SetListItemCount((m_PlayRankDatas.Count - 3) <= 0 ? 0 : m_PlayRankDatas.Count - 3);
m_loopListView_View.RefreshAllShownItem();
}
private void OnRefreshTop()
{
for (int i = 0; i < m_rect_TopPanel.childCount; i++)
{
if (m_PlayRankDatas.Count <= i)
{
m_rect_TopPanel.GetChild(i).gameObject.SetActive(false);
}
else
{
var topItem = m_rect_TopPanel.GetChild(i).GetComponent<UIGameRankTopItem>();
UnitPlayerData data = DataGameSceneManager.Instance.GetUnitPlayerData(m_PlayRankDatas[i].uid);
topItem.OnInit(i, m_PlayRankDatas[i], gameRankType, data);
m_rect_TopPanel.GetChild(i).gameObject.SetActive(true);
}
}
}
private void OnRefreshUI()
{
OnRefreshTop();
m_loopListView_View.SetListItemCount((m_PlayRankDatas.Count - 3) <= 0 ? 0 : m_PlayRankDatas.Count - 3);
m_loopListView_View.RefreshAllShownItem();
}
LoopListViewItem OnGetItemByIndex(LoopListView listView, int index)
{
if (index + 3 >= m_PlayRankDatas.Count)
{
return null;
}
if (m_PlayRankDatas[index + 3] == null)
{
return null;
}
// 好像还不一定需要
UnitPlayerData data = DataGameSceneManager.Instance.GetUnitPlayerData(m_PlayRankDatas[index + 3].uid);
LoopListViewItem item = listView.AllocOrNewListViewItem("RankItem");
UIGameRankItem itemScript = item.GetComponent<UIGameRankItem>();
if (item.IsInitHandlerCalled == false)
{
item.IsInitHandlerCalled = true;
}
itemScript.OnInit(index + 3, m_PlayRankDatas[index + 3], gameRankType, data);
return item;
}
protected override void OnDestroy()
{
base.OnDestroy();
// 如果是结算进来的
if ((GameRankType)UserDatas[0] == GameRankType.)
{
// 重新游戏逻辑
DataGameSceneManager.Instance.OnRestData();
}
}
} }
} }