Files
aibis-dream/Assets/Scripts/UI/DialogUI/Options/OnelineOptions.cs
T
dingyuntian 8ab73ca5a9 问题修复
增加单行的选项界面
2026-01-04 15:39:20 +08:00

47 lines
1.4 KiB
C#

using UnityEngine;
using AibisDream.Framework;
namespace AibisDream
{
public class OnelineOptions : MonoBehaviour
{
[SerializeField] private GameObject choiceButtonPrefab;
[SerializeField] private bool showDisabledOptions;
public void ShowOptions(DialogOption[] dialogOptions)
{
gameObject.SetActive(true);
Debug.Log($"ShowOptions: {dialogOptions.Length}, {dialogOptions[0].Line}");
// 生成新按钮
foreach (var option in dialogOptions)
{
// 如果选项不可用且不显示不可用选项,则跳过
if (!option.IsAvailable && !showDisabledOptions) continue;
// 生成按钮
var choiceInstance = Instantiate(choiceButtonPrefab, transform);
var choiceButton = choiceInstance.GetComponent<OnelineOption>();
choiceButton.Init();
choiceButton.SetOption(option);
}
}
public void HideOptions()
{
// 销毁所有按钮
foreach (Transform child in transform)
{
Destroy(child.gameObject);
}
}
private void OnEnable()
{
EnumEventSystem.Global.Register<DialogEventEnum, LineInfo>(DialogEventEnum.OptionSelected,
_ => HideOptions());
}
}
}