提交界面
This commit is contained in:
parent
1997aa9b86
commit
4f32edc6a5
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
@ -1,7 +1,7 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using TEngine;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
|
||||
namespace GameLogic
|
||||
{
|
||||
@ -9,276 +9,47 @@ namespace GameLogic
|
||||
class UIGameRankForm : UIWindow
|
||||
{
|
||||
#region 脚本工具生成的代码
|
||||
private Text m_text_Title;
|
||||
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 TextMeshProUGUI m_tmp_TitleName;
|
||||
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_Main;
|
||||
private Button m_btn_CloseMain;
|
||||
private Button m_btn_Rest;
|
||||
protected override void ScriptGenerator()
|
||||
{
|
||||
m_text_Title = FindChildComponent<Text>("Bg/m_text_Title");
|
||||
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_tmp_TitleName = FindChildComponent<TextMeshProUGUI>("Bg/Image (1)/m_tmp_TitleName");
|
||||
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_Main = FindChildComponent<Button>("Bg/m_btn_Main");
|
||||
m_btn_CloseMain = FindChildComponent<Button>("Bg/m_btn_CloseMain");
|
||||
m_toggle_MyRank.onValueChanged.AddListener(OnToggle_MyRankChange);
|
||||
m_toggle_WeekRank.onValueChanged.AddListener(OnToggle_WeekRankChange);
|
||||
m_toggle_Rank.onValueChanged.AddListener(OnToggle_RankChange);
|
||||
m_btn_Rest = FindChildComponent<Button>("Bg/m_btn_Rest");
|
||||
m_btn_Rank.onClick.AddListener(OnClick_RankBtn);
|
||||
m_btn_Close.onClick.AddListener(OnClick_CloseBtn);
|
||||
m_btn_Main.onClick.AddListener(OnClick_MainBtn);
|
||||
m_btn_CloseMain.onClick.AddListener(OnClick_CloseMainBtn);
|
||||
m_btn_Rest.onClick.AddListener(OnClick_RestBtn);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#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()
|
||||
{
|
||||
GameModule.UI.CloseUI<UIGameRankForm>();
|
||||
}
|
||||
|
||||
private void OnClick_CloseMainBtn()
|
||||
private void OnClick_RestBtn()
|
||||
{
|
||||
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
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user