← 返回博客

手游 HUD 信息层级:战斗态、大厅态与弹窗该显示什么

按游戏状态划分 HUD 可见性与优先级;与 Safe Area、飘字层、Modal 排序的对接;可执行的规格表与 Play/真机验收步骤。

发布于
  • 游戏UI设计
  • 游戏开发AI提效
  • ui-to-engine
  • hud
  • mobile
  • unity
  • godot
  • cocos
  • vberai
  • 2026
手游 HUD 信息层级:战斗态、大厅态与弹窗该显示什么

HUD 常见问题不是「少做了一个血条」,而是 同一屏叠了太多同级信息:战斗里弹出大厅级入口、过场动画仍显示可点商店、Modal 打开时底层 HUD 还在抢点击。策划稿往往按 单帧 mock 画,不会标「战斗态隐藏货币条」——需要 状态 × 层级 规格,程序才能在 可见性 + 输入拦截 + 绘制排序 里落地。

下文以 Unity UGUI(Prefab、Canvas.sortingOrder、Graphic Raycast)为主表述;Godot 用 CanvasLayer layer + Control mouse_filter,Cocos 用 节点绘制顺序 + BlockInputEvents / 全屏遮罩,判据与表格同构。Safe Area、飘字层、Canvas 排序细节见 Safe Area、飘字;真机 / 多语言 / Release 仍叠加 发布前自查 第 1、2、5 项。

失败判据(任一即未通过): Modal / 过场 / 支付流程中 底层 HUD 仍可交互(除非规格明确「半屏可操作」);战斗态出现 非战斗必需且不可关闭 的促销入口挡操作区;同一信息 两处重复显示(如金币顶栏 + 战斗内又大号金币)且无产品说明;状态切换时 残留上一态控件(可见或占 Raycast);与 多语言 叠加后,长文案语言在 战斗态精简布局 仍爆框。


先定状态,再定控件

游戏状态(示例)HUD 目标典型显示典型隐藏 / 降级
大厅 / 主界面导航 + 资源 + 活动顶栏货币、底栏 Tab、活动入口战斗技能栏、准星
战斗 / 关卡内操作 + 生存信息血条、技能、暂停大厅 Tab、全屏活动 Banner
过场 / CG无交互或仅跳过跳过按钮几乎全部 HUD(或仅保留跳过)
Modal 弹窗(商店、设置)焦点在弹窗弹窗内控件底层 HUD 关 Raycast 或整层隐藏
支付 / 合规完成流程协议、确认游戏内促销浮层

状态枚举由 策划 + 程序 共定(如 GameUIState.Lobby | Combat | Cinematic | Modal),UI 根 订阅状态机(Unity Prefab 分组 / Godot 场景分支 / Cocos 预制体),避免每个按钮在脚本里散落 SetActive / visible。

大厅态 vs 战斗态:Tab/活动入口应在战斗态隐藏示意


层级与排序(与引擎无关的约定)

建议 从下到上 写进规格(数字越大越靠前):

层级内容交互
L0全屏背景 / 场景 UI bleed无
L1战斗 HUD(血条、摇杆区占位)有
L2战斗飘字 / 提示无 Raycast(见 飘字)
L3系统 Toast / 跑马灯通常无
L4Modal / 全屏弹窗有;挡 L1–L3 点击
L5网络断线、强制更新有;挡全部

Unity:sortingOrder / 多 Canvas 分工;Godot:CanvasLayer layer;Cocos:同 Canvas 下节点顺序或分层 Canvas + 遮罩。Modal 打开时必须抬升 L4,并对 L1 关 Raycast / mouse_filter / BlockInput,不能仅靠「视觉上盖住仍点穿」。

L0–L5 自底向上叠层示意(飘字无点击、Modal 挡战斗 HUD)


信息优先级(战斗态示例)

战斗态若只能留 N 个可读区块(小屏),建议默认上限:

优先级区块可降级策略
P0生命 / 失败条件相关不隐藏
P0暂停 / 退出战斗不隐藏
P1技能 / 主要操作可合并为更少按钮
P2任务目标短文本缩为 icon + 长按详情
P3货币、活动入口战斗态默认隐藏 或进暂停菜单
P3聊天入口收起到 icon

「降级」须在 多语言压力语言 下仍可读(DE/ES 等),不能只缩英文。

战斗态 P0–P3:货币/活动默认隐藏,生命与暂停保留示意


验收步骤(5 步)

  1. 列表化状态 — 从主流程提取状态切换点(进关、开商店、CG、断线重连)。
  2. 逐态截图对比 — Editor Play 与 真机 Release 各一套(对照 发布前第 1、5 项);检查 SetActive(false) / visible=false 的节点是否仍拦截点击。
  3. Modal 抽测 — 商店 / 设置 / 支付打开时,点底层原 HUD 按钮 必须无效(全屏透明 Raycast 或 BlockInput 遮罩)。

Modal 打开:错误(点穿战斗按钮)vs 正确(底层不可点)对比示意

  1. 与 Safe Area 交叉 — 战斗态 P0 控件均在 safe 内(见 Safe Area)。
  2. 写回可版本化资源 — 状态表驱动(Unity ScriptableObject / Godot Resource / Cocos 配置表),非 Scene 里临时隐藏。

设计稿要补什么

交付用途
分状态 wireframe(至少 Lobby / Combat / Modal)程序配置 visibility
战斗态「可隐藏清单」标注避免 mock 里画满元素
Modal 规格:底层是否半透明、是否可点透定 Raycast 策略
促销 / 活动层 z 序与 L4/L5 对齐

不要求设计师写状态机;表格 + 标注 即可减少程序猜。


回修路径表

现象最可能原因建议动作负责
弹窗后仍能点战斗按钮未关底层 RaycastModal 层关 Graphic Raycast / 遮罩全屏程序
战斗满屏活动入口未做状态表战斗态隐藏 P3;策划确认程序 + 策划
过场 HUD 残留未监听 Cinematic 状态状态机统一 Hide HUD程序
两套货币显示大厅条未关Combat 态关顶栏或合并数据源程序 + 策划
长语言战斗态爆框精简布局未测 DE/ES见 多语言爆框设计 + 程序

常见问题

大厅和战斗用两个 Canvas 吗?
可以;也可同一 Canvas 下分组。关键是 状态 visibility + Raycast,不是 Canvas 数量本身。

半屏商店算 Modal 吗?
算。须写清底层是否可点、是否暂停战斗逻辑。

和 UX「少即是多」冲突?
层级表是 产品规则,不是审美结论;P3 隐藏可由策划在活动期临时打开,但须过状态机开关。

3D 游戏头顶血条算 HUD 吗?
算 战斗信息层,与 L1 并列管理;World Space 排序见 飘字 / Safe Area 相关约定。

你可能还会喜欢这些文章