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);
    }
Example #2
0
    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);
    }