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); // 生成新按钮 foreach (var option in dialogOptions) { // 如果选项不可用且不显示不可用选项,则跳过 if (!option.IsAvailable && !showDisabledOptions) continue; // 生成按钮 var choiceInstance = Instantiate(choiceButtonPrefab, transform); var choiceButton = choiceInstance.GetComponent(); choiceButton.Init(); choiceButton.SetOption(option); } } public void HideOptions() { // 销毁所有按钮 foreach (Transform child in transform) { Destroy(child.gameObject); } } private void OnEnable() { EnumEventSystem.Global.Register(DialogEventEnum.OptionSelected, _ => HideOptions()); } } }