3D Modern Menu – 1.2.2

1.0 INTRODUCTION
1.1 GETTING STARTED
1.2 ADDING/REMOVING MENUS
1.3 EVENT SYSTEM
2.1 THEME EDITOR
2.2 LINKING TO THEME
3.1 MOBILE PROJECTS
3.2 INTEGRATIONS
3.3 USING EXISTING CAMERAS
4.1 TIPS
4.2 LEGACY MENU
5.1 UPGRADING to 2019
6.1 SUPPORT

 

1.0 INTRODUCTION

3D Modern Menu is a full 3D World Space native uGUI Complete Modern Main Menu template with a Theme Editor and TextMeshPro integration. Download and set up with your project in minutes!

If you want to learn how to make this project from scratch, I have a YouTube tutorial series  that walks you through every step (outdated version of Unity though). This version has been converted to C# but the YouTube version was written in JavaScript since it was a while ago. The base scripts are all there and you can customize them as you wish. This project is free to use and I hope to see some cool variations of it in the future!

 

1.1 GETTING STARTED

To test the features of the menu, open the demo scene “Menu_Scene” and hit play. The scene uses the latest menu prefab “Main_Menu_New.” If you want to use a blank scene and add the menu, make sure there is no EventSystem already in the scene and then drag + drop the menu prefab in the Hierarchy. If you have an EventSystem previously added, disable the EventSystem game object under the menu prefab.

1) Make sure to install the Post Processing from the package manager as it’s used in the prefab. Otherwise you’ll get missing script errors.

2) Check your Build Settings, and add Menu_Scene as well as Second_Scene if they aren’t there already.

 

1.2 ADDING/REMOVING MENUS

Modifying the buttons and menus can be adjusted with 3 steps.

1) Adjusting the button prefabs under the VerticalLayout will let you rearrange them or add/remove. Simplfy Ctrl+D (Cmd+D on Mac) a button and adjust the text. Unity will automatically align it properly.

 

 2) In the MainMenu script inspector settings, under the Menus dropdown list, each element should correspond to each possible menu in the main menu screen (not the settings screen). If at any point in the menus lifetime you want a menu to appear or dissappear, it should be under this list.

3) Each button prefabs Button component has an OnClick() event. Assign the Camera object in a new field, and assign MainMenu.OpenMenu. The number value should match the index of the menu that you want to open. 0 = First menu, 1 = second menu, etc…

1.3 EVENT SYSTEM

The menu prefabs have an EventSystem included already as a game object, so if you have an EventSystem previously added in your scene, disable the EventSystem game object under the menu prefab and Unity will use your existing one.

2.1 THEME EDITOR

You can quickly change the color theme sets for all the buttons and graphics using the Theme Editor. Under SlimUI/Data, you will see a Theme Editor file.

There are 3 presets for color combinations. Graphic X and Text X correspond to Image components and TextMeshPro components respectively.

To assign the color combination sets, select “Camera” under the menu prefab, and in the Inspector settings under the MainMenuScript component, select from the Theme drop down menu.

2.2 LINKING TO THEME

Linking Image or TextMeshPro components to use the selected theme colors is very simple to do. Select the Image or Text that you want controlled by the theme and add the ThemeUIElement component. Tick the appropriate box matching the component type.

In the Theme Controller field, assign the Theme Editor file that you want to pull color values from. You can find the demo theme editor file under SlimUI/Data.

3.1 MOBILE PROJECTS

If you are building a project for mobile, use the Menu_Scene_MOBILE or drag + drop the Main_Menu_Mobile prefab into a new scene. The rules for the Event System apply (Section 1.2).

Make sure that “Is Mobile” is ticked, which will allow the First menu in the menu list to start enabled.

The mobile menu is virtually identical to the normal menu so set-up and integration are equal, while the visuals are significantly varied.

3.2 INTEGRATIONS

If you are adding Modern Menu to an existing scene, drag + drop the prefab in your scene and the menu will start to function automatically.

If you have an existing event system, disable the menu’s event system game object per Section 1.2.

When you’re returning to the main menu at any point, make sure TimeScale is set to 1 otherwise the aimations in the menu won’t trigger.

If the Post Processing script is missing or giving an error, you might not have Post-Processing installed in the Package Manager. You can disable the POST game object to fix this, or install Post Processing Stack V2.

3.3 USING EXISTING CAMERAS

If the Camera depth isn’t rendering properly, you can adjust it to have the menu camera render only the UI layer by setting the “Culling Mask” to UI so you can keep the menu animations while swapping the background for your own scene.  Set the Canvas elements’ layer to UI.

Make sure to set the “Clear Flags” setting to Depth Only to only render the UI Layer without the background.

4.1 TIPS

Every variable has a tooltip describing it’s function, so you don’t have to guess what each variable is for!

Just hover over the variable to see it’s description.

4.2 LEGACY MENU

If you’re upgrading from an earlier version of Modern Menu, you’ll be familiar with the Main_Menu_Legacy prefab and its contents.

It’s not actively used in the project but it’s identical to the old design before the prefab was ugpraded to use the Theme Editor and Nested prefabs. 

5.1 UPGRADING TO 2019

In Unity 2019, the Package Manager was introduced, allowing a new streamlined way to handle Asset and Package imports. 3D Modern Menu 2018 uses Unity’s outdated system, so in order to upgrade to 2019 you need to follow a few steps.

1) POST PROCESSING: Install Post Processing from the Package Manager if you haven’t already. This will allow the Post Processing scripts to re-link. If you don’t want Stack Post Processing enabled, delete the POST game object from the menu prefab.

2) TEXT MESH PRO: TextMeshPro 2019 requires .Net 4.x Scripting Runtime. If you don’t have your project settings set to this, you’ll have many errors in the console for TextMeshPro. You can find the settings under ProjectSettings/Player/OtherSettings.

2.1) Once you open a scene with TextMeshPro objects, or if you’re installing the menu from the Package Manager in Unity 2019, you should be prompted to Import TMP Essentials.

2.2) If you have a TextMeshPro folder under your Assets left over from the 2018 version, delete the folder since it is obselete.

6.1 SUPPORT

For direct support, join our Discord: discord.gg/7cK4KBf

NOTE* There are PlayerPref values being saved to store data. That way, when you load up the project, the previous values for sliders are saved.

NOTE* The objects that have scripts on them are “Camera” “SFXSliderSound” and “Canv_Options.” Other than that, no other objects have any scripts on them.

Note* If you have a “Mission (Mono Script)” error on the POST game object, install Post Processing from the Package Manager.

NOTE* If you are using a version before 1.0.7 and materials in your scene are missing or blank, delete the Particle FX shaders included in the Modern Menu package OR upgrade to 1.0.7. Newer versions of Unity aren’t compatible with older shaders.

NOTE* The Key Bindings do not have any functions! They are just designed in the layout but are not programmed. You will have to program the input detection.

Have a suggestion to improve the documentation or package?

2 + 13 =