Unified Settings & Game Options UI

Unified Settings & Game Options UI

Updated
2024-07-21
Premium
Tools
File Version
1.18.0
File size
10.5 MB
Only Premium, VIP or Exclusive Users
Description

A settings template with one unified interface for all render pipelines (URP, HDRP, Built-in) and input systems (old and new).

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, 2023, ... (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.

 

  • Gamma - Range for the gamma correction post processing effect (-1 to +1).

 

  • Motion Blur - On/Off for the motion blur post processing effect. Notice: URP does not have a per-object motion blur. More on that in the manual.

 

  • Monitor - Allows you to switch the display monitor of the main window. ⚠️ NOTICE: This requires Unity 2021.2 or higher since that's when Unity added the monitor switching API.

 

  • Quality - Changes the global quality setting. Options are taken from the graphics quality settings automatically.

 

  • Refresh Rate - Options for monitor refresh rates. Options are taken from the refresh rates supported by the monitor.

 

  • Resolution - Options for the game resolution. Options are taken from the resolutions supported by the monitor.

 

  • Shadow - On/Off for shadows (and contact shadows if you use HDRP).

 

  • Shadow Distance - Options for max shadow distance. The options are based on your graphics quality settings.

 

  • Shadow Resolution - Options for max shadow map resolutions. The options are based on your graphics quality settings. Notice: the shadow resolution is spread out over the shadow distance. Thus the highest shadow resolution with the lowest shadow distance gives the best quality (that's a little counter intuitive, I know).

 

  • Textfield - Let the player enter a name or something else.

 

  • Texture Resolution - Options for texture resolutions. The default options are: full-res, 1/2 res, 1/4 res, 1/8 res.

 

  • Vignette - On/Off for the vignette post processing effect.

 

  • V-Sync - On/Off for vertical sync.

 

  • Window Mode - Use this if you need more control than just "full screen on/off". Otherwise use the "Full Screen" setting. You rarely need this.

 

Third Party Integrations / Connections

The settings system supports some third party assets. These assets are NOT included. You'll have to get them separately. - Please notice that I have no influence on these assets.

 

  • DLSS - Support for DLSS Upscaling by Alterego Games. There is a short section on the integration in the manual. You can get in touch with Alterego Games in the forum.

 

  • FSR - Support for FSR 2 by Alterego Games. There is a short section on the integration in the manual. You can get in touch with Alterego Games in the forum.

 

Technical details

If you are using the built-in render pipeline and you want to use the post processing effects then you will have to install the Unity PostProcessing V2 package from the package manager.

Do NOT install the PostProcessing V2 package if you are using URP or HDRP. URP and HDRP have their very own PostProcessing Stack already included. In fact you should uninstall that package if you are using URP or HDRP according to the documentation.

 

Interactive Rebinding is supported. Please use the "InputBindingUGUI (Setting)" for this. Using this requires the InputSystem package to be installed.

Comments
Comments is not yet
Add Comment
Please register
Other interesting assets