44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
namespace AibisDream
|
|
{
|
|
public class DefaultOptions : MonoBehaviour
|
|
{
|
|
private BubbleOption[] _options;
|
|
|
|
private void Awake()
|
|
{
|
|
_options = transform.Find("Options")
|
|
.GetComponentsInChildren<BubbleOption>(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();
|
|
}
|
|
}
|
|
}
|
|
} |