top of page

Moduler Menu Creation System For Unity




Modular Settings Menu Creator is a versatile and user-friendly system designed for Unity developers to implement an intuitive settings menu in their games. This system allows players to customize their gaming experience by adjusting various settings, including audio levels, graphics quality, and more.

With its modular design, developers can easily add, remove, or modify settings without extensive coding. The interface is fully customizable, ensuring that it fits seamlessly into any game’s aesthetic. It supports different resolutions and aspect ratios, making it adaptable for various platforms, including PC, consoles, and mobile devices.

The system is designed with player engagement in mind, allowing for real-time changes to settings, which enhances the overall user experience. Developers can implement features like sliders for volume control, dropdown menus for graphics options, and key bindings for controls, all accessible in a sleek, organized layout.

Whether you're creating an FPS, RPG, or any other genre, the Modular Settings Menu Creator streamlines the process of setting up a comprehensive settings menu, making it a valuable addition to any Unity project. Boost your game's accessibility and user satisfaction with this essential tool!


Instructions

Modulalar Settings Menu Creator for Unity

Overview

SettingsManager is a flexible and customizable Unity script designed to manage in-game settings such as graphics quality, audio levels, mouse sensitivity, and language preferences. It supports multiple quality levels, integrates with Unity's Localization system, and offers a modular structure for easy integration into any project.

Features

  • Quality Levels: Six predefined quality levels (Very Low, Low, Medium, High, Very High, Ultra) plus a mandatory Custom preset.

  • Audio Management: Separate controls for master volume and music volume using tagged audio sources.

  • Localization: Automatic language settings integration with Unity's Localization system.

  • Post-Processing Support: Manage visual effects like brightness, contrast, motion blur, film grain, chromatic aberration, and depth of field.

  • Modular Design: Easily customizable and extendable to fit various project requirements.

  • Flexible Setup: Supports both prefab-based and modular setups for different project structures.

  • User-Friendly: Intuitive setup instructions and integration with UI elements like sliders, toggles, and dropdowns.

Requirements

  • Unity Version: Compatible with Unity 2019.4 and above.

  • Packages:

    • Post-Processing: Required for managing visual effects. Ensure the Post-Processing package is installed via the Package Manager.

    • Localization: Required for language settings. Install the Localization package via the Package Manager.

Quality Levels

The script includes seven quality levels:

  1. Very Low

  2. Low

  3. Medium

  4. High

  5. Very High

  6. Ultra

  7. Custom (Mandatory and must be the last preset)

Note: The Custom preset is essential for the proper functioning of quick presets. Ensure it is always included as the last quality level.

Post-Processing

Post-processing effects enhance the visual quality of your game. While PostProcessing is not mandatory, it is required for the script to manage visual settings effectively. If not used:

  • Visual settings like brightness, contrast, motion blur, film grain, chromatic aberration, and depth of field will not be applied unless the script is modified accordingly.

  • To disable post-processing, remove all post-processing references from the script.

Localization

SettingsManager leverages Unity's Localization system to manage language settings automatically.

  • Mandatory: Projects utilizing localization must adhere to this integration.

  • Optional: If your project does not use localization, you must implement custom methods for language settings.

  • Customization: Users can add or modify language settings as needed. Ensure that any additional languages are properly integrated into the Localization system.

Audio Settings

  • Master Volume: Controls the overall audio level of the game.

  • Music Volume: Controls the volume of music audio sources tagged as "Music."

Important: For separate control over music volume, ensure that all music audio sources are tagged with the "Music" tag. If the "Music" tag is not used, all audio sources will be controlled by the master volume.

Setup Instructions

1. Importing the Script

  1. Download the SettingsManager.cs script and place it in your project's Scripts folder.

  2. Ensure that the Post-Processing and Localization packages are installed via the Package Manager.

2. Using the Prefab

  1. Create a Canvas:

    • If your scene does not already have a Canvas, create one by right-clicking in the Hierarchy window and selecting UI > Canvas.

  2. Add SettingsMenu Prefab:

    • Navigate to Prefabs/SettingsMenu and drag the SettingsMenu.prefab into your Canvas.

  3. Assign Components:

    • Inside the SettingsMenu prefab, ensure that all serialized fields in the SettingsManager script are properly assigned by dragging the corresponding UI elements (sliders, toggles, dropdowns, text fields) into their respective slots.

3. Modular Setup

  1. Create a Canvas:

    • If your scene does not already have a Canvas, create one by right-clicking in the Hierarchy window and selecting UI > Canvas.

  2. Add Settings Menu GameObject:

    • Inside the Canvas, create an empty GameObject (e.g., SettingsMenu).

  3. Attach SettingsManager Script:

    • Drag the SettingsManager.cs script onto the SettingsMenu GameObject.

  4. Add UI Modules:

    • Add necessary UI elements (sliders, toggles, dropdowns) to the SettingsMenu GameObject or its children.

  5. Assign Serialized Fields:

    • In the SettingsManager script component, drag each corresponding UI element into its respective serialized field in the Inspector.

Button Setup

1. OnClick Events

  • OnApprove Button:

    • Assign the OnApprove() method from SettingsManager to the button's OnClick event.

  • OnDeny Button:

    • Assign the OnDeny() method from SettingsManager to the button's OnClick event.

  • ResetDefaults Button:

    • Assign the ResetDefaults() method from SettingsManager to the button's OnClick event.

2. Exit and Close Buttons

  • Exit Button:

    • Assign the QuitGame.cs script to the Exit button.

    • Ensure the QuitGame() method is linked to the button's OnClick event.

  • Close Settings Button:

    • Assign the CloseSettings.cs script to the Close button.

    • Ensure the CloseSettings() method is linked to the button's OnClick event.

3. Graphic Settings Buttons

  • Texture Quality Button:

    • Assign the ChangeTextureOptions() method from SettingsManager to the button's OnClick event.

  • Material Quality Button:

    • Assign the ChangeMaterialOptions() method from SettingsManager to the button's OnClick event.

  • Shadow Quality Button:

    • Assign the ChangeShadowOptions() method from SettingsManager to the button's OnClick event.

  • Anti-Aliasing Button:

    • Assign the ChangeAntiAliasingOptions() method from SettingsManager to the button's OnClick event.

Note: Ensure that all buttons have their OnClick events properly configured to call the corresponding methods in the SettingsManager script.

Customization

  • Quality Levels:

    • Each quality level (Very Low, Low, Medium, High, Very High, Ultra, Custom) can be manually adjusted in the script to fine-tune graphics settings such as texture quality, shadow resolution, and LOD bias.

  • Mouse Sensitivity:

    • The script includes empty methods for updating mouse sensitivity (UpdateAimSens). Implement these methods in your project to control mouse sensitivity based on slider values.

  • Post-Processing Effects:

    • Ensure that the Post-Processing package is installed and assigned to the PostProcessVolume field in the script. Adjust visual effects as needed within the script or through the Post-Processing Volume component.

Important Notes

  • Post-Processing Dependency:

    • For the script to function correctly, the Post-Processing package must be installed and assigned. Without it, visual settings will not be applied unless the script is modified.

  • Quality Level Configuration:

    • Each quality level must be manually configured in the script to ensure that quick presets work correctly. Automatic configuration is not supported.

  • Customization Necessity:

    • Projects not using localization or requiring custom audio settings must implement their own methods to handle these features.

  • Removing Post-Processing:

    • If you choose not to use Post-Processing, remove all related references and settings from the script to avoid unused code and potential errors.

Troubleshooting

  • Missing Components:

    • Ensure that all serialized fields in the SettingsManager script are properly assigned in the Inspector. Missing assignments can lead to certain settings not being applied.

  • Quality Levels Not Applying:

    • Verify that all quality levels (Very Low, Low, Medium, High, Very High, Ultra, Custom) are correctly set up in the Unity Quality Settings.

  • Localization Issues:

    • Ensure that the Localization package is correctly set up and that all required languages are added to the Localization settings.

  • Audio Volume Control:

    • If music volume is not adjusting separately, confirm that all music audio sources are tagged with "Music".

Support

For any questions, issues, or further assistance, please contact us at:

📧 Email: support@kairadigitalarts.com

📺 Demo Video: Watch the Demo on YouTube

egal Notice and Intellectual Property

The SettingsManager script, along with all associated assets, prefabs, and resources, is the intellectual property of Kaira Digital Arts S.R.L..

  • Copyright: © 2024 Kaira Digital Arts S.R.L. All rights reserved.

  • License: This script is provided for use in commercial or personal projects under a non-exclusive, non-transferable license. Redistribution, modification, or resale of this script in its original or modified form is strictly prohibited without prior written consent from Kaira Digital Arts.

Usage Terms

By using or integrating the SettingsManager script in your projects, you agree to the following:

  1. Attribution: You may not remove, modify, or obscure any copyright notices or logos associated with Kaira Digital Arts S.R.L.

  2. Modification: You are free to modify the script for your project’s requirements. However, any derivative work remains the intellectual property of Kaira Digital Arts unless otherwise agreed.

  3. Distribution: Distribution of the script, whether in its original or modified form, without explicit permission is prohibited.

Violations

Any unauthorized use, reproduction, or distribution of this script will be subject to legal action under applicable copyright and intellectual property laws.

For licensing inquiries or to report a violation, please contact us at:

📧 Email: info@kairadigitalarts.com

Thank you for respecting our work and ensuring compliance with these terms!

 


bottom of page