using TMPro; using Ichni.Story.Dialogue; using UnityEngine; namespace Ichni.Story.UI { /// DialogHistoryPage 中单条记录的 Prefab 视图。 public class DialogueHistoryEntryView : MonoBehaviour { [Tooltip("普通台词显示的说话者文本;选项记录会自动隐藏。")] [SerializeField] private TMP_Text speakerText; [Tooltip("台词或玩家已采用选项的正文文本。")] [SerializeField] private TMP_Text contentText; [Tooltip("可选:仅在玩家选项记录时显示的视觉标识。")] [SerializeField] private GameObject choiceIndicator; /// 将一条临时对话记录映射到该视图。 public void SetUp(DialogueHistoryEntry entry) { bool isChoice = entry != null && entry.isChoice; if (speakerText != null) { speakerText.gameObject.SetActive(!isChoice && !string.IsNullOrEmpty(entry?.speakerName)); speakerText.text = entry?.speakerName ?? string.Empty; } if (contentText != null) contentText.text = entry?.content ?? string.Empty; if (choiceIndicator != null) choiceIndicator.SetActive(isChoice); } } }