Files
ichni_Official/Assets/Scripts/UI/SongSelection/SongSelectionUIPage.cs
SoulliesOfficial 810d019619 剧情+对话完善
2026-07-21 15:24:42 -04:00

81 lines
2.6 KiB
C#

using DG.Tweening;
using Ichni.RhythmGame;
using Ichni.Story;
using Ichni.UI;
using SLSUtilities.WwiseAssistance;
using UnityEngine.Events;
using UnityEngine.UI;
using UnityEngine.UI.Extensions;
namespace Ichni.Menu
{
public partial class SongSelectionUIPage : UIPageBase
{
public Button backButton;
public Gradient2 backgroundFrames;
public float framePositionOffset = -1;
public SongListControllerUI songListController;
public PlaySongUI playSongUI;
public SongInfoUI songInfoUI;
public DifficultySelectionContainer difficultySelectionContainer;
//public int currentSelectedDifficultyIndex;
protected override void Awake()
{
base.Awake();
fadeOutAction = () =>
{
songListController.ClearSongTabs();
MenuInputManager.OnMoveUp -= songListController.GoToFormerTab;
MenuInputManager.OnMoveDown -= songListController.GoToNextTab;
};
fadeInStartAction = () =>
{
songListController.InitializeList();
};
fadeInFinishAction = () =>
{
MenuInputManager.OnMoveUp += songListController.GoToFormerTab;
MenuInputManager.OnMoveDown += songListController.GoToNextTab;
};
backButton.onClick.AddListener(() =>
{
FadeOut();
SongSelectionManager.instance.StopPreviewSong();
// 仅当本次选曲由剧情 SongBlock 发起时返回剧情页;普通选曲保持原有的章节选择返回逻辑。
if (StoryManager.instance != null && StoryManager.instance.TryReturnFromSongSelection())
StoryManager.instance.storyUIPage.FadeIn();
else
MenuManager.instance.chapterSelectionUIPage.FadeIn();
});
songInfoUI.SetUp();
}
private void Start()
{
Sequence framesSeq = DOTween.Sequence();
framesSeq.Append(DOTween.To(() => framePositionOffset, x => framePositionOffset = x, 1f, 1f)
.SetEase(Ease.Linear)
.OnUpdate(() => backgroundFrames.Offset = framePositionOffset));
framesSeq.AppendInterval(4f);
framesSeq.SetLoops(-1, LoopType.Restart);
framesSeq.Play();
}
}
public partial class SongSelectionUIPage
{
public SongItemData selectedSong;
public DifficultyData selectedDifficulty;
public SongStatusSave selectedSave;
}
}