简介
在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++中可以访问的蓝图控件。
|
|
这个控件在蓝图中被设为一个W_HorizontalTabList
,可以方便调整具体样式。
可以参考:结合蓝图与C++
在页面的Construct
时,会调用RegisterTopLevelTab
来依次注册各个Tab。
- GameplayCollection
- VideoCollection
- AudioCollection
- MouseAndKeyboardCollection
- GamepadCollection
对于每个Tab,通过UGameSettingScreen::GetSettingCollection
读取具体的设置。
具体的设置项依赖于GameSetting
提供的UGameSettingCollection
类。
注册之后,只需要监听TopSettingsTabs
的OnTabSelected
即可在玩家选择对应页签时切换至所选Collection
。
页面内容
这部分主要靠GameSettings
插件调度,在UGameSettingScreen
中定义了变量Settings_Panel
用于标记设置内容控件。
Settings_Panel
是蓝图W_SettingsPanel
,其基于GameSettings
插件提供的UGameSettingPanel
。
界面提供了设置项ListView_Settings
列表,以及设置项详情Details_Settings
。
页尾按钮
TODO