using System.Linq; using UnityEngine; namespace AibisDream { public class DefaultOptions : MonoBehaviour { private BubbleOption[] _options; private void Awake() { _options = transform.Find("Options") .GetComponentsInChildren(true) .OrderBy(item => item.optionIdx) .ToArray(); } public void ShowOptions(DialogOption[] dialogueOptions) { HideOptions(); var availableOptions = dialogueOptions.Where(item => item.IsAvailable).ToArray(); // 如果仅由一个选项 if (availableOptions.Length == 1) { _options[0].ShowOption(availableOptions[0], HideOptions); } else { for (var i = 0; i < availableOptions.Length; i++) { _options[i + 1].ShowOption(availableOptions[i], HideOptions); } } } public void HideOptions() { foreach (var option in _options) { option.Hide(); } } } }