using TMPro;
using UnityEngine;
namespace Cielonos.Settings.UI
{
///
/// 设置界面右侧的悬停说明面板。
///
/// 当鼠标悬停到某个 SettingsEntry 时显示该条目的标题和说明文本,
/// 鼠标离开后隐藏。此面板不是 ,
/// 按 ESC 时由设置界面整体处理退出逻辑。
///
///
public class SettingsDescriptionPanel : MonoBehaviour
{
[SerializeField] private TMP_Text titleText;
[SerializeField] private TMP_Text descriptionText;
[SerializeField] private CanvasGroup canvasGroup;
private void Awake()
{
if (canvasGroup == null)
canvasGroup = GetComponent();
Hide();
}
///
/// 显示说明面板。如果 description 为空则不显示。
///
/// 条目标题。
/// 条目说明文本。
public void Show(string title, string description)
{
if (string.IsNullOrEmpty(description))
{
Hide();
return;
}
if (titleText != null)
titleText.text = title;
if (descriptionText != null)
descriptionText.text = description;
SetVisible(true);
}
///
/// 隐藏说明面板。
///
public void Hide()
{
SetVisible(false);
}
private void SetVisible(bool visible)
{
if (canvasGroup != null)
{
canvasGroup.alpha = visible ? 1f : 0f;
canvasGroup.blocksRaycasts = visible;
}
else
{
gameObject.SetActive(visible);
}
}
}
}