TH1/Unity/Assets/Scripts/TH1_UI/View/Outside/UIOutsideStoryView.cs
2026-02-23 00:42:32 +08:00

79 lines
2.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using Logic.Audio;
using TH1_Core.Events;
using TH1_Core.Managers;
using TH1_Logic.Comic;
using TH1_UI.View.Base;
using UnityEngine;
using UnityEngine.UI;
namespace TH1_UI.View.Outside
{
/// <summary>
/// 剧情选择界面View
/// </summary>
public class UIOutsideStoryView : Base.View
{
[Header("按钮")]
public Button CloseButton;
public Button NextButton;
// 关闭时执行的委托
public ViDelegateAssisstant.Dele OnBtnCloseClick;
public GameObject ComicRoot;
private int prologue_index = 0;
private List<string> prologue_comics = new List<string> { "Prologue_1", "Prologue2", "Prologue_3", "Prologue_4", "Prologue_5" };
protected override void OnInit()
{
base.OnInit();
//_comicRoot = UIManager.Instance.ROUIManager?.transform.Find("Comic")?.gameObject;
if (CloseButton != null)
{
CloseButton.onClick.RemoveAllListeners();
CloseButton.onClick.AddListener(() => { OnBtnCloseClick?.Invoke(); });
}
NextButton.onClick.RemoveAllListeners();
NextButton.onClick.AddListener(() =>
{
ComicManager.Instance.ForceNext();
if (ComicManager.Instance.ComicControl.State == ComicState.Ended)
{
prologue_index++;
if(prologue_index >= prologue_comics.Count)
{
EventManager.Publish(new HideUIOutsideStory());
}
else
{
ComicManager.Instance.InitComic(prologue_comics[prologue_index], ComicRoot);
ComicManager.Instance.ForceNext();
}
}
});
}
public void SetContent(ShowUIOutsideStory evt)
{
prologue_index = 0;
ComicRoot.SetActive(true);
AudioManager.Instance.PlayMusic("Story",1f,1f,true);
ComicManager.Instance.InitComic(prologue_comics[prologue_index],ComicRoot);
// 启动播放第一次Next将状态从Prepared切换到Playing
ComicManager.Instance.ForceNext();
}
public void CloseView()
{
AudioManager.Instance.PlayMusic("Main",1f,1f,true);
ComicRoot.SetActive(false);
// 清理工作
}
}
}