This commit is contained in:
SoulliesOfficial
2025-07-10 08:42:30 -04:00
parent 150ef744e8
commit e483cfe502
286 changed files with 31518 additions and 947 deletions

View File

@@ -96,14 +96,7 @@ namespace Ichni.Menu.UI
if (songItemPrefab != null)
{
for (int i = 0; i < songTitles.Count; i++)
{
GameObject itemGO = Instantiate(songItemPrefab, content);
itemGO.name = $"Song_{i}_{songTitles[i]}";
Text itemText = itemGO.GetComponentInChildren<Text>();
if (itemText != null) itemText.text = songTitles[i];
songItems.Add(itemGO.GetComponent<RectTransform>());
}
GenerateSongTabs();
}
Canvas.ForceUpdateCanvases();
@@ -115,7 +108,17 @@ namespace Ichni.Menu.UI
}
}
Tweener contentTween;
public void GenerateSongTabs()
{
string chapter = ChapterSelectionManager.instance.currentChapter;
ChapterSelectionUnit chapterUnit = ChapterSelectionManager.instance.chapters.Find(c => c.chapterIndex == chapter);
foreach (SongItemData song in chapterUnit.songs)
{
SongSelectionTabUI tab = Instantiate(songItemPrefab ,content).GetComponent<SongSelectionTabUI>();
songItems.Add(tab.GetComponent<RectTransform>());
tab.SetUpTab(song);
}
}
public void OnBeginDrag(PointerEventData eventData)
{
@@ -190,6 +193,22 @@ namespace Ichni.Menu.UI
}
}
public IEnumerator SnapToTab(SongSelectionTabUI tab)
{
selectedTab?.SetSelection(false);
selectedTab = null; // 清除当前选中的Tab
DOTween.To(x=>targetX = x, targetX, -1600f, 0.2f).SetEase(Ease.OutQuad).Play();
songItems.ForEach(item => item.DOScale(1.2f,0.2f).SetEase(Ease.OutQuad).Play());
yield return new WaitForSeconds(0.2f);
DOTween.To(x => targetX = x, targetX, -1500f, 0.2f).SetEase(Ease.OutQuad).Play();
songItems.ForEach(item => item.DOScale(1,0.2f).SetEase(Ease.OutQuad).Play());
yield return StartCoroutine(SnapToItem(tab.GetComponent<RectTransform>(), false));
}
private IEnumerator SnapToItem(RectTransform targetItem, bool immediate)
{
if (!immediate)