CutePet/Assets/Scripts/GameScene/Panel/AllLevPanel.cs

169 lines
4.3 KiB
C#
Raw Permalink Normal View History

2024-10-25 11:10:04 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// <20><><EFBFBD>йؿ<D0B9><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>Ϣ
/// </summary>
public class AllLevPanel : BasePanel
{
//<2F>ܹؿ<DCB9><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ȱ仯
public RectTransform imgLev;
//<2F>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public float maxWidth=335f;
//<2F><><EFBFBD><EFBFBD>
public Button btnLeft;
//<2F>һ<EFBFBD>
public Button btnRight;
//<2F>رհ<D8B1>ť
public Button btnClose;
//<2F>ؿ<EFBFBD><D8BF><EFBFBD>Χ
public Text txtAllLev;
public Transform content;
//<2F><><EFBFBD>Χ
private int beginIndex;
private int endIndex;
//<2F><><EFBFBD>ڴ洢<DAB4>ؿ<EFBFBD><D8BF><EFBFBD>ť<EFBFBD><C5A5>
public List<GameObject> itemList = new List<GameObject>();
private List<AllLevData> levList;
private int num;
public override void Init()
{
UpdatePan();
btnClose.onClick.AddListener(() =>
{
UIManager.Instance.HidePanel<AllLevPanel>();
});
btnLeft.onClick.AddListener(() =>
{
beginIndex -= 30;
endIndex -= 30;
if (beginIndex<1)
{
beginIndex = levList.Count / 30 * 30+1;
endIndex = levList.Count;
}
else if (endIndex%30!=0&&endIndex< levList.Count&& levList.Count>30)
{
endIndex = beginIndex / 30*30 + 30;
}
UpdataPanel(beginIndex, endIndex);
InitInfo(beginIndex, endIndex);
UpdateImg(num, beginIndex / 30 + 1);
});
btnRight.onClick.AddListener(() =>
{
beginIndex += 30;
endIndex += 30;
if (beginIndex > levList.Count)
{
beginIndex = 1;
if (levList.Count >= 30)
{
endIndex = 30;
}
else
{
endIndex = levList.Count;
}
}
else if (endIndex > levList.Count&&beginIndex < levList.Count)
{
endIndex = levList.Count;
}
UpdataPanel(beginIndex, endIndex);
InitInfo(beginIndex, endIndex);
UpdateImg(num, beginIndex / 30+1);
});
}
//һ<><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
private void UpdatePan()
{
//<2F><>ȡ<EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD>״̬<D7B4><CCAC>Ϣ
levList = GameDataMgr.Instance.levList;
//<2F>õ<EFBFBD>һ<EFBFBD><D2BB>Ҫѭ<D2AA><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD>䰴ť
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1> +1 <20><><EFBFBD><EFBFBD> ƽ<><C6BD><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD>num<75><6D><EFBFBD><EFBFBD>ť
if (levList.Count % 30 == 0)
{
num = levList.Count / 30;
}
else
{
num = levList.Count / 30 + 1;
}
beginIndex = 1;
if (levList.Count >= 30)
{
endIndex = 30;
}
else
{
endIndex = levList.Count;
}
UpdateImg(num, beginIndex / 30 + 1);
UpdataPanel(beginIndex, endIndex);
InitInfo(beginIndex, endIndex);
}
public void InitInfo(int beginIndex, int endIndex)
{
//<2F><>¼<EFBFBD><C2BC>ǰ<EFBFBD><C7B0><EFBFBD>䰴ť<E4B0B4><C5A5> <20><><EFBFBD><EFBFBD>ֵ
this.beginIndex = beginIndex;
this.endIndex = endIndex;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
txtAllLev.text = "<22><>"+ beginIndex + " - " + endIndex + "<22><>";
}
/// <summary>
/// <20><EFBFBD><E1B9A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD> <20><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD> <20><>ǰѡ<C7B0><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳఴť
/// </summary>
/// <param name="beginIndex"></param>
/// <param name="endIndex"></param>
public void UpdataPanel(int beginIndex, int endIndex)
{
//<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>֮ǰ<D6AE>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>ť
for (int i = 0; i < itemList.Count; i++)
{
//ɾ<><C9BE>֮ǰ<D6AE><C7B0> <20><><EFBFBD><EFBFBD>
Destroy(itemList[i]);
}
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD> һ<><D2BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
itemList.Clear();
//<2F>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µİ<C2B5>ť
for (int i = beginIndex; i <= endIndex; i++)
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD>°<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
GameObject levItem = Instantiate(Resources.Load<GameObject>("UI/LevItem1"));
levItem.transform.SetParent(content, false);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ <20><><EFBFBD>°<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
LevItem1 item = levItem.GetComponent<LevItem1>();
item.InitInfo(levList[i-1]);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
itemList.Add(levItem);
}
}
private void UpdateImg(float f,int lenght)
{
// <20><><EFBFBD><EFBFBD> Image <20>Ŀ<EFBFBD><C4BF><EFBFBD>
float newWidth = maxWidth * (lenght / f);
imgLev.sizeDelta = new Vector2(newWidth, imgLev.sizeDelta.y);
}
}