Lyra设置页面相关设计

文章字数:794

简介

在Lyra中,通过ESC键选择OPTIONS可以呼出设置页面W_LyraSettingScreen

页面分析

W_LyraSettingScreen继承于C++类ULyraSettingScreen,其基于GameSettings插件提供的UGameSettingScreen

  classDiagram
    class W_LyraSettingScreen {
        +TopSettingsTabs
        +Settings_Panel
        +W_BottomActionBar
    }
    UCommonUserWidget <|-- UCommonActivatableWidget
    UCommonActivatableWidget <|-- UGameSettingScreen
    UGameSettingScreen <|-- ULyraSettingScreen
    ULyraSettingScreen <|-- W_LyraSettingScreen

其中,GameSettings插件基于CommonUI插件,详细说明参考:虚幻引擎中CommonUI插件

页头页签

标签控件使用一个ULyraTabListWidgetBase制作,通过在C++中定义BindWidget,可以创建一个在C++中可以访问的蓝图控件。

1
2
UPROPERTY(BlueprintReadOnly, Category = Input, meta = (BindWidget, OptionalWidget = true, AllowPrivateAccess = true))
TObjectPtr<ULyraTabListWidgetBase> TopSettingsTabs;

这个控件在蓝图中被设为一个W_HorizontalTabList,可以方便调整具体样式。

可以参考:结合蓝图与C++

在页面的Construct时,会调用RegisterTopLevelTab来依次注册各个Tab。

  • GameplayCollection
  • VideoCollection
  • AudioCollection
  • MouseAndKeyboardCollection
  • GamepadCollection

对于每个Tab,通过UGameSettingScreen::GetSettingCollection读取具体的设置。

具体的设置项依赖于GameSetting提供的UGameSettingCollection类。

注册之后,只需要监听TopSettingsTabsOnTabSelected即可在玩家选择对应页签时切换至所选Collection

页面内容

这部分主要靠GameSettings插件调度,在UGameSettingScreen中定义了变量Settings_Panel用于标记设置内容控件。

Settings_Panel是蓝图W_SettingsPanel,其基于GameSettings插件提供的UGameSettingPanel

界面提供了设置项ListView_Settings列表,以及设置项详情Details_Settings

页尾按钮

TODO

加载中...