void Awake() { _manager = GetComponent <MenuManager>(); // This is just the option select prefab in action. MenuConfig.Builder builder = new MenuConfig.Builder(false, true, PaletteConfig); PanelConfig.Builder panel = new PanelConfig.Builder(MENU_KEY_MAIN); panel.AddPanelObject(new OptionSelectConfig.Builder("quality", OptionSelectPrefab) .SetDisplayText("Quality") .AddOptionStrings(QualitySettings.names) .SetDefaultOptionIndex(QualitySettings.GetQualityLevel()) .SetOptionSelectedHandler(delegate(OptionSelectManager manager, int newIndex, string optionString) { QualitySettings.SetQualityLevel(newIndex); })); panel.AddPanelObject(new OptionSelectConfig.Builder("something", OptionSelectPrefab) .SetDisplayText("Something") .AddOptionString("cool", false) .AddOptionString("off", false) .AddOptionString("out of line", false) .AddOptionString("right", true) .AddOptionString("wrong", false) .SetOptionSelectedHandler(delegate(OptionSelectManager manager, int newIndex, string optionString) { Debug.Log($"Selected {optionString}"); })); builder.AddPanelConfig(panel); CreateMenu(_manager, builder); }
public static PanelConfig.Builder StandardOptionsPanel(string key, MenuManager menuHelper, GameObject buttonPrefab, GameObject sliderPrefab, GameObject dropdownPrefab, GameObject togglePrefab) { PanelConfig.Builder builder = new PanelConfig.Builder(key); builder.AddPanelObject(new ButtonConfig.Builder("back", buttonPrefab) .SetDisplayText("Back") .SetButtonPressedHandler(delegate(ButtonManager manager) { menuHelper.PopPanel(); })); builder.AddPanelObject(new SliderConfig.Builder("sliderlook", sliderPrefab, 0.1f, 3f, 1f) .SetDisplayText("Look Speed") .SetSliderUpdatedHandler(delegate(SliderManager manager, float newValue) { // Handle sensitivity })); builder.AddPanelObject(new SliderConfig.Builder("slidervolume", sliderPrefab, 0f, 1f, 1f) .SetDisplayText("Volume") .SetSliderUpdatedHandler(delegate(SliderManager manager, float newValue) { // Handle volume })); builder.AddPanelObject(new SliderConfig.Builder("fov", sliderPrefab, 40f, 130f, 80f) .SetDisplayText("FOV") .SetUseWholeNumbers(true) .SetSliderUpdatedHandler(delegate(SliderManager manager, float newValue) { // This won't update it across scenes, you'll need to do that yourself. Camera.main.fieldOfView = newValue; })); builder.AddPanelObject(new DropdownConfig.Builder("quality", dropdownPrefab) .SetDisplayText("Quality") .AddOptionStrings(QualitySettings.names) .SetDefaultOptionIndex(QualitySettings.GetQualityLevel()) .SetDropdownChosenHandler(delegate(DropdownManager manager, int newIndex, string optionString) { QualitySettings.SetQualityLevel(newIndex); })); // No point in showing resolution config in WebGL - It does nothing. if (Application.platform != RuntimePlatform.WebGLPlayer) { builder.AddPanelObject(ResolutionConfig(dropdownPrefab)); } builder.AddPanelObject(new ToggleConfig.Builder("fullscreen", togglePrefab) .SetDisplayText("Fullscreen") .SetIsOn(Screen.fullScreen) .SetTogglePressedHandler(delegate(ToggleManager manager, bool newValue) { Screen.fullScreen = newValue; })); return(builder); }