阶段性完成
This commit is contained in:
@@ -15,7 +15,7 @@ namespace Ichni.Menu
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
mainVolumeModifier.SetUp(gameSettings.masterVolume, 10, "Menu UI/Settings_Master_Volume");
|
||||
mainVolumeModifier.SetUp(gameSettings.masterVolume, 10);
|
||||
mainVolumeModifier.SetMinMax(0, 100);
|
||||
mainVolumeModifier.updateValueAction = () =>
|
||||
{
|
||||
@@ -23,7 +23,7 @@ namespace Ichni.Menu
|
||||
SettingsManager.instance.ApplyAudioSettings();
|
||||
};
|
||||
|
||||
musicVolumeModifier.SetUp(gameSettings.musicVolume, 10, "Menu UI/Settings_Music_Volume");
|
||||
musicVolumeModifier.SetUp(gameSettings.musicVolume, 10);
|
||||
musicVolumeModifier.SetMinMax(0, 100);
|
||||
musicVolumeModifier.updateValueAction = () =>
|
||||
{
|
||||
@@ -31,7 +31,7 @@ namespace Ichni.Menu
|
||||
SettingsManager.instance.ApplyAudioSettings();
|
||||
};
|
||||
|
||||
sfxVolumeModifier.SetUp(gameSettings.soundEffectVolume, 10, "Menu UI/Settings_SFX_Volume");
|
||||
sfxVolumeModifier.SetUp(gameSettings.soundEffectVolume, 10);
|
||||
sfxVolumeModifier.SetMinMax(0, 100);
|
||||
sfxVolumeModifier.updateValueAction = () =>
|
||||
{
|
||||
@@ -39,7 +39,7 @@ namespace Ichni.Menu
|
||||
SettingsManager.instance.ApplyAudioSettings();
|
||||
};
|
||||
|
||||
uiVolumeModifier.SetUp(gameSettings.uiVolume, 10, "Menu UI/Settings_UI_Volume");
|
||||
uiVolumeModifier.SetUp(gameSettings.uiVolume, 10);
|
||||
uiVolumeModifier.SetMinMax(0, 100);
|
||||
uiVolumeModifier.updateValueAction = () =>
|
||||
{
|
||||
@@ -47,8 +47,7 @@ namespace Ichni.Menu
|
||||
SettingsManager.instance.ApplyAudioSettings();
|
||||
};
|
||||
|
||||
inGameAudioEffectsSwitch.SetUp(gameSettings.enableInGameAudioEffects,
|
||||
"Menu UI/Settings_InGame_Audio_Effects");
|
||||
inGameAudioEffectsSwitch.SetUp(gameSettings.enableInGameAudioEffects);
|
||||
inGameAudioEffectsSwitch.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.enableInGameAudioEffects = inGameAudioEffectsSwitch.GetValue();
|
||||
|
||||
@@ -13,19 +13,19 @@ namespace Ichni.Menu
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
debugModeSwitch.SetUp(gameSettings.debugMode, "Menu UI/Settings_Debug_Mode");
|
||||
debugModeSwitch.SetUp(gameSettings.debugMode);
|
||||
debugModeSwitch.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.debugMode = debugModeSwitch.GetValue();
|
||||
};
|
||||
|
||||
judgeTypeSwitch.SetUp(gameSettings.judgeType, "Menu UI/Settings_Judge_Type");
|
||||
judgeTypeSwitch.SetUp(gameSettings.judgeType);
|
||||
judgeTypeSwitch.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.judgeType = judgeTypeSwitch.GetValue();
|
||||
};
|
||||
|
||||
autoPlaySwitch.SetUp(gameSettings.autoPlay, "Menu UI/Settings_Auto_Play");
|
||||
autoPlaySwitch.SetUp(gameSettings.autoPlay);
|
||||
autoPlaySwitch.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.autoPlay = autoPlaySwitch.GetValue();
|
||||
@@ -39,4 +39,4 @@ namespace Ichni.Menu
|
||||
autoPlaySwitch.SetValue(gameSettings.autoPlay);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace Ichni.UI
|
||||
public Dropdown languageDropdown;
|
||||
public override void Initialize()
|
||||
{
|
||||
offsetEditorButton.SetUp("Menu UI/Settings_Offset_Editor", "", "Menu UI/Settings_Enter");
|
||||
offsetEditorButton.SetUp();
|
||||
offsetEditorButton.updateValueAction = () =>
|
||||
{
|
||||
gameObject.SetActive(false);
|
||||
@@ -19,7 +19,10 @@ namespace Ichni.UI
|
||||
MenuManager.instance.settingsUIPage.settingsWindowController.buttonsContainer.gameObject.SetActive(false);
|
||||
};
|
||||
|
||||
languageDropdown.SetUp(SettingsManager.instance.GetLanguageDropdownIndex(), MenuManager.instance.displayLanguageList, "Menu UI/Settings_Language");
|
||||
// 语言列表采用各语言的自称(例如日本語、한국어),不应随当前 Locale 再次翻译。
|
||||
languageDropdown.SetUpRuntime(
|
||||
SettingsManager.instance.GetLanguageDropdownIndex(),
|
||||
MenuManager.instance.displayLanguageList);
|
||||
languageDropdown.updateValueAction = () =>
|
||||
{
|
||||
SettingsManager.instance.SetLanguageByDropdownIndex(languageDropdown.selectedIndex);
|
||||
|
||||
@@ -8,32 +8,34 @@ namespace Ichni.Menu
|
||||
{
|
||||
public class GraphicsSettingsWindow : SettingsWindow
|
||||
{
|
||||
private static readonly List<string> QualityPresetOptions = new List<string>
|
||||
private const string UiTable = "UI";
|
||||
|
||||
private static readonly string[] QualityPresetKeys =
|
||||
{
|
||||
"Performant",
|
||||
"Balanced",
|
||||
"High Fidelity"
|
||||
"ui_settings_quality_performance",
|
||||
"ui_settings_quality_balanced",
|
||||
"ui_settings_quality_high_fidelity"
|
||||
};
|
||||
|
||||
private static readonly List<string> DisplayModeOptions = new List<string>
|
||||
private static readonly string[] BloomQualityKeys =
|
||||
{
|
||||
"Fullscreen",
|
||||
"Borderless Fullscreen",
|
||||
"Windowed"
|
||||
"ui_settings_bloom_off",
|
||||
"ui_settings_bloom_performance",
|
||||
"ui_settings_bloom_standard"
|
||||
};
|
||||
|
||||
private static readonly List<string> BloomQualityOptions = new List<string>
|
||||
private static readonly string[] VfxQualityKeys =
|
||||
{
|
||||
"Off",
|
||||
"Performance",
|
||||
"Standard"
|
||||
"ui_settings_vfx_low",
|
||||
"ui_settings_vfx_medium",
|
||||
"ui_settings_vfx_high"
|
||||
};
|
||||
|
||||
private static readonly List<string> VfxQualityOptions = new List<string>
|
||||
private static readonly string[] DisplayModeKeys =
|
||||
{
|
||||
"Low",
|
||||
"Medium",
|
||||
"High"
|
||||
"ui_settings_display_fullscreen",
|
||||
"ui_settings_display_borderless_fullscreen",
|
||||
"ui_settings_display_windowed"
|
||||
};
|
||||
|
||||
private readonly List<Vector2Int> _availableDisplayResolutions = new List<Vector2Int>();
|
||||
@@ -52,15 +54,14 @@ namespace Ichni.Menu
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
qualityPresetDropdown.SetUp((int)gameSettings.graphicsQualityPreset, QualityPresetOptions,
|
||||
"Menu UI/Settings_Quality_Preset");
|
||||
qualityPresetDropdown.SetUpLocalized((int)gameSettings.graphicsQualityPreset, UiTable, QualityPresetKeys);
|
||||
qualityPresetDropdown.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.graphicsQualityPreset = (GraphicsQualityPreset)qualityPresetDropdown.selectedIndex;
|
||||
SettingsManager.instance.ApplyGraphicSettings();
|
||||
};
|
||||
|
||||
renderScaleModifier.SetUp(gameSettings.renderScaleLevel, 1, "Menu UI/Settings_Render_Scale");
|
||||
renderScaleModifier.SetUp(gameSettings.renderScaleLevel, 1);
|
||||
renderScaleModifier.SetMinMax(0, 5);
|
||||
renderScaleModifier.updateValueAction = () =>
|
||||
{
|
||||
@@ -68,7 +69,7 @@ namespace Ichni.Menu
|
||||
SettingsManager.instance.ApplyGraphicSettings();
|
||||
};
|
||||
|
||||
targetFrameModifier.SetUp(gameSettings.targetFrame, 30, "Menu UI/Settings_Target_Frame");
|
||||
targetFrameModifier.SetUp(gameSettings.targetFrame, 30);
|
||||
targetFrameModifier.SetMinMax(30, 120);
|
||||
targetFrameModifier.updateValueAction = () =>
|
||||
{
|
||||
@@ -119,21 +120,21 @@ namespace Ichni.Menu
|
||||
return;
|
||||
}
|
||||
|
||||
postProcessingSwitch.SetUp(gameSettings.enablePostProcessing, preservePrefabTitle: true);
|
||||
postProcessingSwitch.SetUp(gameSettings.enablePostProcessing);
|
||||
postProcessingSwitch.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.enablePostProcessing = postProcessingSwitch.GetValue();
|
||||
SettingsManager.instance.ApplyPostProcessingSettings();
|
||||
};
|
||||
|
||||
bloomQualityDropdown.SetUp((int)gameSettings.bloomQuality, BloomQualityOptions, preservePrefabTitle: true);
|
||||
bloomQualityDropdown.SetUpLocalized((int)gameSettings.bloomQuality, UiTable, BloomQualityKeys);
|
||||
bloomQualityDropdown.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.bloomQuality = (BloomQuality)bloomQualityDropdown.selectedIndex;
|
||||
SettingsManager.instance.ApplyPostProcessingSettings();
|
||||
};
|
||||
|
||||
vfxQualityDropdown.SetUp((int)gameSettings.vfxQuality, VfxQualityOptions, preservePrefabTitle: true);
|
||||
vfxQualityDropdown.SetUpLocalized((int)gameSettings.vfxQuality, UiTable, VfxQualityKeys);
|
||||
vfxQualityDropdown.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.vfxQuality = (VfxQuality)vfxQualityDropdown.selectedIndex;
|
||||
@@ -145,23 +146,21 @@ namespace Ichni.Menu
|
||||
{
|
||||
BuildDisplayResolutionOptions();
|
||||
|
||||
vSyncSwitch.SetUp(gameSettings.vSyncEnabled, "Menu UI/Settings_VSync");
|
||||
vSyncSwitch.SetUp(gameSettings.vSyncEnabled);
|
||||
vSyncSwitch.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.vSyncEnabled = vSyncSwitch.GetValue();
|
||||
SettingsManager.instance.ApplyDisplaySettings();
|
||||
};
|
||||
|
||||
displayModeDropdown.SetUp((int)gameSettings.displayMode, DisplayModeOptions,
|
||||
"Menu UI/Settings_Display_Mode");
|
||||
displayModeDropdown.SetUpLocalized((int)gameSettings.displayMode, UiTable, DisplayModeKeys);
|
||||
displayModeDropdown.updateValueAction = () =>
|
||||
{
|
||||
gameSettings.displayMode = (GraphicsDisplayMode)displayModeDropdown.selectedIndex;
|
||||
SettingsManager.instance.ApplyDisplaySettings();
|
||||
};
|
||||
|
||||
displayResolutionDropdown.SetUp(GetDisplayResolutionIndex(), _displayResolutionOptions,
|
||||
"Menu UI/Settings_Display_Resolution");
|
||||
displayResolutionDropdown.SetUpRuntime(GetDisplayResolutionIndex(), _displayResolutionOptions);
|
||||
displayResolutionDropdown.updateValueAction = () =>
|
||||
{
|
||||
Vector2Int resolution = _availableDisplayResolutions[displayResolutionDropdown.selectedIndex];
|
||||
|
||||
@@ -25,10 +25,10 @@ namespace Ichni.Menu
|
||||
foreach (RebindActionData data in rebindActions["Keyboard"])
|
||||
{
|
||||
// 在C# 8.0+ 中,可以使用静态匿名函数来避免闭包分配
|
||||
data.rebindButton.SetUp(data.title, data.subtitle, data.actionName, data.bindingIndex);
|
||||
data.rebindButton.SetUp(data.actionName, data.bindingIndex);
|
||||
}
|
||||
|
||||
resetButton.SetUp("Menu UI/Settings_ResetRebinding", "", "Menu UI/Settings_Confirm");
|
||||
resetButton.SetUp();
|
||||
resetButton.updateValueAction = ResetAllBindings;
|
||||
}
|
||||
|
||||
@@ -114,9 +114,6 @@ namespace Ichni.Menu
|
||||
[System.Serializable]
|
||||
public class RebindActionData
|
||||
{
|
||||
public string title;
|
||||
[FormerlySerializedAs("description")] public string subtitle;
|
||||
|
||||
[Tooltip("必须与Input Actions Asset中的Action名称完全匹配")]
|
||||
public string actionName;
|
||||
|
||||
@@ -132,4 +129,4 @@ namespace Ichni.Menu
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user