← 返回总览UI 管理

UI 管理:Demo 是运行时构建 UGUI,核心框架尚未定义 UI 系统

当前 UI 设计思想是“表现层消费核心结果”。核心不依赖 UI;Demo Controller 用 Canvas、Text、Button 手写一个最小可交互界面。

现有 UI 链路

LuckyDiceDemoController.Awake
  -> BuildUi
  -> ShowReady

Button.onClick
  -> StartRoll
  -> PlayRollFlow coroutine
  -> LuckyDiceDemoRunner.RunRandom
  -> ApplyDiceTexts / ShowResult

UI 在点击后播放普通骰子文本轮播,再把核心结果写回 Text。若结果是 Lucky Dice,则显示 3 个 Lucky slot,再展示目标玩法信息。

UI 设计思想

当前实现含义
核心和表现分离核心先一次性算出 LuckyDiceDemoSnapshotUI 动画不会参与规则、随机或目标模式决策。
状态展示集中ShowReadyShowResultSetStatusApplyDiceTextsDemo 可读,但还不是可复用 UI 框架。
运行时构建界面BuildUi 代码创建 Canvas、Board、Text、Button。方便演示,生产项目应改为 prefab/scene-authored UI。
缺少导航系统没有 panel stack、modal、screen router、layer manager。当前不能直接承担完整游戏 UI 管理。

生产化建议

保留核心输出模型

继续让核心输出 RollFlowResultTargetModeEntryRollTrace,UI 只消费这些结构。

拆 Presenter

把 Demo 中的格式化和状态展示拆成 Presenter/ViewModel,避免 UI 文本拼接散落在 Controller。

Prefab 化

把 Canvas、骰子格、结果槽、按钮做成 prefab,运行时只绑定数据和触发动画。

建立玩法启动 UI 协议

EnterTargetModeEffectTargetModeEntry 应交给上层流程/UI router,而不是 Demo Controller 直接决定跳转。

证据