# 一、菜单系统架构图

Menu System

# 二、游戏流程状态

  • 每一个菜单对应一个游戏流程状态去处理逻辑。为什么要这样设计?
    1. 菜单只负责显示、游戏流程状态负责处理逻辑,典型的将 MVC 架构思想。
    2. 解耦。
    3. 方便游戏流程的控制和管理。
      比如:切入 \ 切出主菜单,只需要简单的切换流程状态就行,其他的 UI 细节全部隐藏在流程状态之下,使外部不用去关系内部的实现。

# 三、Menu

  • 和游戏流程状态一一对应。

# 四、Option

  • 菜单中的每一个选项(按钮)就是一个 Option。
  • Option 排列在菜单中显示,但是逻辑交给对应的 GameFlowState 处理。
  • 配置一些数据。比如:这个 Option 是什么(Id),这样方便 GameFlowState 识别。
  • 获取鼠标输入,并通过回调传递给 GameFlowState 处理逻辑(这主要是 UE5 的 Slate 架构所致,Swidget 的鼠标只能从从这里获取)。
  • 使用步骤:
    1. 首先这个 Option 是 UUserWidget,可以在创建蓝图编辑样式,然后随心所欲将 Option 排列在菜单中(UXXWidget_DialogMenu_)。
    2. 按顺序注册进入 GameFlowState 管理。
編集日

*~( ̄▽ ̄)~[お茶]を一杯ください

XiaoLiang WeChat 支払う

WeChat 支払う

XiaoLiang Alipay

Alipay