99 lines
3.0 KiB
C#
99 lines
3.0 KiB
C#
using Cysharp.Threading.Tasks;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class UI_TipsForPracticePanel : BasePanel
|
|
{
|
|
public GameObject pptImagePrefab;
|
|
public RectTransform content;
|
|
public ScrollRect scrollRect;
|
|
|
|
//public ScrollRect leftscrollRect;
|
|
|
|
public UI_TipsForPracticePanelPPTNameItem pptNameItem;
|
|
public RectTransform Left_content;
|
|
|
|
protected override void Awake()
|
|
{
|
|
// 1. 提取文件名并解析数字前缀
|
|
var sortedItems = Bootstrap.Instance.ppts
|
|
.Select(path => new {
|
|
Path = path,
|
|
Name = LoadPPTTest.PathName(path),
|
|
Order = LoadPPTTest.ExtractLeadingNumber(LoadPPTTest.PathName(path)) // 提取数字
|
|
})
|
|
.OrderBy(item => item.Order) // 按数字排序
|
|
.ToList();
|
|
// 2. 生成排序后的按钮
|
|
foreach (var item in sortedItems)
|
|
{
|
|
var buttonItem = Instantiate(pptNameItem, Left_content);
|
|
buttonItem.Init(item.Name);
|
|
buttonItem.PPTName_Btn.gameObject.name = item.Name;
|
|
Debug.Log($"已创建按钮: {item.Name} (排序键: {item.Order})");
|
|
}
|
|
base.Awake();
|
|
//pptConfig = JsonManager.LoadData<PPTConfig>("pptConfig");
|
|
if (Bootstrap.Instance.ppts == null || Bootstrap.Instance.ppts.Length == 0)
|
|
{
|
|
Debug.LogError("PPT路径数组未初始化或为空");
|
|
return;
|
|
}
|
|
|
|
|
|
}
|
|
public override void ShowMe()
|
|
{
|
|
base.ShowMe();
|
|
}
|
|
public override void HideMe()
|
|
{
|
|
base.HideMe();
|
|
}
|
|
|
|
protected override async void OnClick(string btnName)
|
|
{
|
|
Debug.Log(btnName);
|
|
switch (btnName)
|
|
{
|
|
case "retrun_Btn":
|
|
Bootstrap.Instance.uiManager.ShowPanel<UI_SelectModePanel>(this, E_UI_Layer.System, (panel) =>
|
|
{
|
|
Debug.Log(".1");
|
|
Bootstrap.Instance.uiManager.HidePanel<UI_TipsForPracticePanel>();
|
|
});
|
|
//Bootstrap.Instance.uiManager.HidePanel<UI_TipsForPracticePanel>();
|
|
break;
|
|
default:
|
|
List<Texture2D> textures = LoadPPTTest.LoadPPTItems(btnName);
|
|
if (textures != null)
|
|
{
|
|
DisplayPPT(textures);
|
|
}
|
|
break;
|
|
}
|
|
await LoadPPTTest.RefreshScrollView(content, scrollRect);
|
|
}
|
|
private void DisplayPPT(List<Texture2D> textures)
|
|
{
|
|
foreach (Transform child in content)
|
|
{
|
|
Destroy(child.gameObject);
|
|
}
|
|
Debug.LogError("texturesCount:"+textures.Count);
|
|
foreach (var texture in textures)
|
|
{
|
|
RawImage rawImage = pptImagePrefab.GetComponent<RawImage>();
|
|
RawImage image = Instantiate(rawImage, content);
|
|
image.texture = texture;
|
|
image.rectTransform.sizeDelta = new Vector2(1608, 940);
|
|
}
|
|
}
|
|
|
|
|
|
}
|