Essence Menu – 1.0.1

INTRODUCTION
1.1 GETTING STARTED
1.2 CAMERA
1.3 POST PROCESSING
1.4 REQUIRED PACKAGES
2.1 SCRIPTS WALKTHROUGHS
2.2 UI MANAGER
2.3 SETTINGS MANAGER
2.4 SUB WINDOW CONTROL
2.4A NEW WINDOW IN EXPANDED WORLD
2.5 EXPANDED WINDOWS
2.6 ACTIVE CHECK
2.7 START ENABLED
3.1 ANIMATOR INTRODUCTION
4.1 LOADING SCENES
4.2 CUSTOM SCENE LOADING
5.1 TIPS

 

INTRODUCTION

Essence is a quick and easy, out of the box, clean, and complete functioning UGUI Main Menu that you will turn your UI to AAA quality! Using Text Mesh Pro, Essence is optimized for Unity 2018.2.6+ and designed for easy resolution altering, aspect ratios, and scaling.

 

1.1 GETTING STARTED

To use the package, begin with the demo scene and modify it to fit your needs.  The primary game object is called Essense_Menu, and it’s easily customizable. The main scripts active in the scene can be found on the game objects titled. The only audio sources are child objects under the Main Camera and labeled as HoverSound and LoadSound. The game object Background can be safely deleted as it’s just a temporary background for demonstration.

1.2 CAMERA

There is only one camera in the scene (Main Camera), and it’s projection type is set to Orthographic. Keep this in mind if choosing to render a scene behind the menu. It is recommended to create another camera with the UI layer disabled on rendering to have separate control of the camera views.

1.3 POST PROCESSING

The post processing layer is on the Main Camera and can be safely removed or edited to your liking. Its settings are for demonstration purposes. The Post game object containing the PPV can be found under the Main Camera.

1.4 REQUIRED PACKAGES

Essence requires the use of TextMeshPro which is free and can be downloaded through the Package Manager. There is a folder containing TextMeshPro files under the Essence project folder but you are still required to have a full installation to allow the UI to display properly.

2.1 SCRIPTS WALKTHROUGHS

Part of the simplicity of SlimUI packages is that they require very few scripts and take advantage of the many features that are included with Unity’s UGUI system. There are handy tooltips in the editor over many variables, so there is no confusion as to their purposes. Here is an in-depth breakdown of the six scripts used in Essence:

2.2 UI MANAGER

The main controller for switching between the different menu states, updating texts, customizing the load screen, and customizing welcome and title screen.

Main Camera – The Main Camera game object

Title Screen – The SplashScreen Rect Transform under Essence_Menu. This holds the UI elements related to the splash screen.

Welcome Screen – The WelcomeScreen Rect Transform under MainMenu (under Essence_Menu) . When enabled, the overlay will animate over the other UI elements. The animation can be reset by disabling and enabling the game object.

Using Welcome Screen – When enabled, the welcome screen popup will overlay the menu before control is given to the user.

Using Title Screen – When enabled, the title screen will animate and ask the user for key input to load the Main Menu. NOTE: The Main Menu game object MUST be disabled before runtime if the Title Screen is being used.

Title Screen Wait – The amount of time (in seconds) that it takes before the user is able to input a key and leave the title screen. 

Title Screen Title – The Animator game object holding the title logo.

Title Screen Prompt – The Animator game object holding the key prompt.

Loading Icon – The Rect Transform holding the different loading icon animations.

Animation Position – The drop down menu holding preset positions determined by the code for the loading icon at a specific X and Y coordinate on the screen.

Load Icon Scale Factor – The size of the icon on the loading screen.

Load Animation – The icon animation in the Loading Icon Rect Transform that will be used in the loading screen. This can be changed at runtime if you want to change the loading icon for different game modes.

Load Animation Styles – The child object Game Objects that are the Loading Animation Icons.

Load Icon X pos – The fixed X coordinate value for the position of the loading icon.

Load Icon Y pos – The fixed Y coordinate value for the position of the loading icon.

Load Screen Display – The loading screen text TextMeshProUGUI object.

Loading Screen Text – The string value for the loading text display.

Tip Text – The TextMeshProUGUI object on the loading screen that’s used for displaying the tips.

Tips – The string array that will be used in the tip cycle. You can add or remove to your liking. 

Tip Cycle Speed – The speed (in seconds) for the loading screen tip to change.

New Scene Name – The name of the scene in the build settings that will load when starting a new game.

Saved Scene Name – The name of the scene in the build settings that will be load when loading a previous save. NOTE: The save feature is not included in the package, but the feature included just loads the scene name that you can set through the string.

Experience Bar – The UGUI Slider that holds the value of experience for multiplayer.

Rank Text – The TextMeshProUGUI displaying the multiplayer rank value.

Is Ready – If enabled, the UI Manager will check if all friends in party are ready to enable the “Find Match” button. By default, all friends in party are ready for demonstration purposes. This can be replaced with your own friends list data storing code.

Friends Are Ready – If enabled, this represents that all friends in the party are ready and if enabled with “Is Ready,” the “Find Match” button will enable.

Ready Text Button – The TextMeshProUGUI on the “Ready” button displaying “Ready” or “Not Ready” depending on the status of the user.

Find Match Button – The UI Button that enables when all friends in the party are ready.

2.3 SETTINGS MANAGER

The main controller for handling Setting inputs and text displays as well as sliders. NOTE: The settings functionality is not currently included in the package.

Look Sensitivity – The Look Sensitivity UI Slider.

Sensitivity Text – The TextMeshProUGUI Text display next to the sensitivity slider displaying the value.

Text Quality Preset – The TextMeshProUGUI Text displaying the setting status of the quality preset.

Text Texture Preset – The TextMeshProUGUI Text displaying the setting status of the texture preset .

Text Shadow Quality – The TextMeshProUGUI Text displaying the setting status of the shadow quality .

Text Shadow Cascades – The TextMeshProUGUI Text displaying the setting status of the shadow cascades.

Text Light Detail – The TextMeshProUGUI Text displaying the setting status of the light detail.

Text Particle FX Quality – The TextMeshProUGUI Text displaying the setting status of the particle fx quality .

 

2.4 SUB WINDOW CONTROL

A simple script found on the EXPANDED WORLD game object, that enables the window corresponding to the button selected in the child objects. Because the button list is responsive, you can add or remove any buttons and the menu will automatically re-scale to match. 

Window – The game object array holding all the possible windows that can be opened in the EXPANDED WORLD.

2.4A NEW WINDOW IN EXPANDED WORLD

To add a menu option in the left side list, duplicate one of the buttons under “Window_Buttons” and change the “On Click()” number value under the Button component. Each number corresponds to the index value matching the windows in the Window game object array, starting at 0. So, 0 = WindowLore, 1 = WindowDataLogs, 2 = WindowCollectables, etc…

 

2.5 EXPANDED WINDOWS

Used on the Buttons under EXPANDED WORLD, this script determines if there is a notification under its corresponding window, how many notifications there are, and the variables associated with the popup.

Has Notification – If enabled, the notification icon will enable flashing until the user presses on the button.

Notification Icon – The game object containing the notification icon.

Notification Text – The TextMeshproUGUI Text on the notification flashing icon.

Notifications – The integer value for the notifications amount. If Has Notification is false, this text will not be visible regardless if there are notifications.

Window Manager – The script type that controls the enabling/disabling for the windows.

2.6 ACTIVE CHECK

A small script that can be found on the game objects CAMPAIGN, MULTIPLAYER, NEW STORY, EXPANDED WORLD, NEWS, and PLAYWITHFRIENDS

Start Disabled – If enabled, the Animator on the game object will start disabled at runtime. By default, every menu starts disabled visibility.

Menu Button – If the game object has an Animator component that opens through a menu button interaction, this variable is filled with that menu button.

 

2.7 START ENABLED

A small script that is found on the smaller Animator game objects, including “Return” buttons” that functions similar to the ActiveCheck script. 

Start Enabled – If enabled, the animator component on the game object will start at runtime in enabled visibility.

 

3.1 ANIMATOR INTRODUCTION

There are separate animators controlling all the individual animations for windows, panels, buttons, and popups. They are organized in the project folder and can be modified as needed. I do not recommend modifying the window scale animations as they are specifically set.

 

4.1 LOADING SCENES

By default, the Essence demo loads SecondScene on New Game. You can change the scene that loads when starting a new game by changing the name in the Inspector.

 

4.2 CUSTOM SCENE LOADING

If you want to have more scenes load than just the New Game and Saved Game, on a button click, call LoadCustomLevel and fill the string variable with the name of the scene that you want to load.

 

5.1 TIPS

Almost 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.

NOTE* The Settings menu doesn’t have functionality. It’s just a UI package. A future update will add this functionality.

NOTE* The Save feature is not included in the package, but the feature included just loads the scene name that you can set through the load scene string.

Have a suggestion to improve the documentation or package?

14 + 6 =