A settings template with one unified interface for all render pipelines (URP, HDRP, Built-in) and input systems (old and new).
Links: Manual | Forum
A game options menu template (ui + logic).
With this asset you have only one API to interact with (or one ScriptableObject if you pref a code-free workflow). It does not matter which render pipeline you use. The tool makes sure everything is hooked up the right way so you can have your settings applied effortlessly.
Features
✔️ URP, HDRP and Built-in supported
✔️ Old and new input system supported (with Input Binding)
✔️ Lots of predefined settings (full list below)
✔️ Mouse & keyboard, controller & gamepad, touch supported
✔️ Edit and save key-bindings (supports the OLD and the NEW input system)
✔️ No coding skills required (Scriptable Object based workflow)
✔️ Prefab based UI (easy to tweak). In fact you are getting a whole modular UI library. You don’t like it? Well, okay, no problem. It’s built to be ripped out if need be.
✔️ Localization built-in (easy to extend with assets like “I2 Localization”)
✔️ Saves the user settings in PlayerPrefs (easy to change via code if needed)
✔️ Visual Scripting (BOLT) supported (requires manual setup, see manual)
✔️ Scripting API (for the coders among you)
✔️ UI Toolkit Support (for Unity 2021.2+)
✔️ Auto Save (disabled by default, check the toggle on the provider to enable)
✔️ Full Source Code included!
✔️ Supports Unity 2020, 2021, 2022, … (It may work in Unity 2019 too but that’s not officially supported.)
⚠️ Settings like “Gamma”, “Ambient Occlusion” or “Motion Blur” are post processing effects. If you use the Built-in renderer you will have to install the PostProcessing Stack (V2) from the package manager (it’s a free package from Unity). Don’t use Built-In PostPro on mobile. It’s very hit and miss. Use the URP renderer instead. It comes with its own PostProcessing stack and that one works on mobile too.
⚠️ Controller support for the OLD input system is based on the standard xbox controller layout. I encourage you to use the NEW InputSystem which has a much better controller abstraction included. However, if you are fixed to the old system then I’d recommend using InControl for controller abstraction.
⚠️ Visual Scripting (formerly BOLT) requires a one-time manual setup. It takes about a minute. Please follow the instructions in the manual.
⚠️ UIToolkit support (starting with in Unity 2021.2) is rudimentary (all the logic works but there aren’t many UI components, yet). I am also waiting for Unity to finish some stuff (runtime binding). More details are in the manual.
I publish this asset with full source code because as a developer I know how annoying it is to not have source code access. If you like it then please remind others to purchase the plugin. Don’t just copy and paste it everywhere.
Thank you ❤️
⚙ List of Settings
There is an extensive list of predefined custom settings. You can also invent your own or simply hook up a primitive type with any method in your game. All of them support HDRP, URP and Built-in renderers.
Basic Types: Bool, Int, Float, String – Generic settings to easily create custom settings.
Colors – Save and load any color value.
ColorOptions – Let the user pick from a list of colors.
Options – If you want the player to choose only from a limited set. You give it a list of names (A, B, C) and it tells you with an index (0,1,2) which option the player selected.
Key Combination – Used for key-bindings for example. Supports old and new key codes and key combinations (one or two keys). Three key combinations like Ctrl + Alt + F4 are not supported but can be added via code.
Input Binding – InputBinding UI. The look and interaction is identical to the KeyCombination UI. The difference is that it performs an interactive rebind using the new InputSystem. However to do this it requires a bit of setup. Please read the „Input Binding“ section in the manual before using this.
Ambient Light – Controls the ambient light intensity.
Ambient Occlusion (SSAO) – On/Off for Screen Space Ambient Occlusion. Please check the manual, there are some caveats with this one.
Anti Aliasing – Selectable options are based on your renderer settings.
Audio Mixer – For sounds controlled by AudioMixers.
Audio Paused – On/Off for Audio: Pauses the Audio Listener (useful for global audio on/off).
Audio Volume – Controls the Audio Listener volume (useful for global audio volume).
Audio Source Volume – Controls the volume of one or more specific AudioSource Components.
Bloom – On/Off for the bloom post processing effect.
Depth Of Field – On/Off for the depth of field post processing effects.
Frame Rate – Options to control the target frame rate. Default options are: 30, 60 and 120.
Full Screen – On/Off of for full screen mode.