首页/ 第 10 章 · UI 界面系统/ 第 169 课
LESSON 169 · UI 界面系统

屏幕提示与对话气泡

提示系统完成。下一课综合练习:完整游戏主界面。

⏱ 约 15 分钟📊 难度:入门🗂 第 10 章 · UI 界面系统📍 第 169 / 300 课
课程进度
169 / 300

🎯本节学习目标

  • 实现屏幕提示
  • 实现交互提示
  • 实现头顶气泡

🚀课程导读

“按 E 开门”“获得道具!”“NPC 头顶冒泡说话”——这些“反馈”让游戏人性化。本课实现三类提示。

屏幕中心提示

“拾取道具!”的浮动文字。

  1. 【UI】Canvas 中心 TMP 文字(默认隐藏或透明)。
  2. 【代码】做一个通用的提示系统(单例):
  3. public class HintManager : MonoBehaviour {
  4. public static HintManager Instance;
  5. public TMP_Text hintText;
  6. public CanvasGroup hintGroup;
  7. void Awake() { Instance = this; }
  8. public void ShowHint(string msg, float duration = 1.5f) {
  9. hintText.text = msg;
  10. StopAllCoroutines();
  11. StartCoroutine(FadeHint(duration));
  12. }
  13. IEnumerator FadeHint(float d) {
  14. hintGroup.alpha = 1f;
  15. yield return new WaitForSeconds(d);
  16. while (hintGroup.alpha > 0f) { hintGroup.alpha -= Time.deltaTime * 2f; yield return null; }
  17. }
  18. }
  19. 【调用】捡到金币时:HintManager.Instance.ShowHint("获得金币 +1");
  20. 【完成】中心弹出提示并淡出。
  21. 【进阶】队列多条提示、从下往上弹出列表。
  22. 【注意】用单例便于任何脚本调用。
中心提示 = 单例 + 淡入淡出。所有“获得/解锁”通知都走它。

交互提示与头顶气泡

“按 E”与“说话”。

  1. 【交互提示】当玩家靠近可交互物时,屏幕显示“按 E 开门”:
  2. 在可交互物脚本里:
  3. public GameObject interactHint; // 屏幕下方提示
  4. void OnTriggerEnter(Collider o) { if (o.CompareTag("Player")) interactHint.SetActive(true); }
  5. void OnTriggerExit(Collider o) { if (o.CompareTag("Player")) interactHint.SetActive(false); }
  6. 触发区用 Is Trigger 碰撞体(第 96 课)。
  7. 【头顶气泡】NPC 头顶的对话气泡(World Space Canvas):
  8. 创建 World Space Canvas(第 160 课头顶血条方法)作为 NPC 子物体,放 TMP 文本(默认隐藏)。
  9. 【显示气泡】NPC 脚本:
  10. public GameObject bubble; public TMP_Text bubbleText;
  11. public void Say(string msg) { bubbleText.text = msg; bubble.SetActive(true); Invoke(nameof(HideBubble), 2.5f); }
  12. void HideBubble() { bubble.SetActive(false); }
  13. 【测试】靠近 NPC 显示“按 E”,按 E 后头顶冒泡说话。
  14. 【优化】气泡朝向相机(LookAt,第 160 课)。
  15. 【完成】一套完整的交互反馈体系。
反馈三件套:中心提示(全局)、交互提示(靠近显示)、头顶气泡(NPC 说话)。

常见错误与排查

错误:交互提示一直不消失?
原因:OnTriggerExit 没触发
解决:确认触发区与玩家都有碰撞体;玩家带刚体;提示在 Exit 里隐藏。

动手练习

课后小任务(做出来才算真的学会)

  • 实现中心提示系统并调用
  • 实现“按 E”交互提示
  • 实现 NPC 头顶对话气泡

本节小结

提示系统完成。下一课综合练习:完整游戏主界面。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课小地图制作(UI 层)