Files
aibis-dream/Assets/Scripts/UI/DialogUI/CenterOption.cs
T
dingyuntian f22b7087fb 问题修复
1. 保存存档时立绘信息未保存
2. AMB切到Main时失效
3. 跳过对话功能不停止语音
2025-03-18 14:37:40 +08:00

66 lines
1.6 KiB
C#

using System;
using AibisDream.Framework;
using AibisDream.Kit;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace AibisDream
{
public class CenterOption : MonoBehaviour, IDialogView
{
#region 索引
public GameObject choiceButtonPrefab;
#endregion
private void Awake()
{
EnumEventSystem.Global.Register<DialogEventEnum, DialogText>(DialogEventEnum.OptionSelected,
_ => HideDialog());
}
public void ShowLine(string dialogLine, CharacterVo character, Action nextStep, bool isAutoSkip = false)
{
Debug.Log("CenterOption只显示选项");
}
public void ShowOptions(DialogOption[] dialogueOptions)
{
gameObject.SetActive(true);
// 销毁原来的按钮
foreach (Transform child in transform)
{
Destroy(child.gameObject);
}
// 生成新按钮
foreach (var option in dialogueOptions)
{
if (!option.IsAvailable) continue;
var choiceInstance = Instantiate(choiceButtonPrefab, transform);
choiceInstance.GetComponentInChildren<TMP_Text>().text = option.Line;
choiceInstance.GetComponent<Button>().onClick.AddListener(option.Select);
}
}
public void HideDialog()
{
gameObject.SetActive(false);
}
public bool TrySkipLine(bool isForceSkip)
{
// 无法跳过
return true;
}
public void NextStep()
{
// 无法继续
}
}
}