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); } } } }