Essence Menu – V1.1

1.0 INTRODUCTION
1.1 GETTING STARTED
1.2 CAMERA
1.3 EVENT SYSTEM
1.4 INSPECTOR WALKTHROUGH
1.5 CHANGE SCENES
1.6 ACTIVE CHECK
1.7 WINDOWS STARTING ENABLED
1.8 ANIMATOR INTRODUCTION
2.0 MODIFYING MENUS
2.1 SCENE LOADING
3.0 TIPS
4.0 SUPPORT

 

1.0 INTRODUCTION

Essence is a beautifully animated, organic feeling, dynamic, and functioning native uGUI main
menu pack, ready to drop in your game with just a few clicks. If you’re upgrading to V1.1 from
a legacy version, unfortunately they are not compatible because of the prefab and engine
updates overhaul breaks any links to older version.. It’s refactored code, new prefabbed
animations, and an updated menu using native uGUI components.

 

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 EVENT SYSTEM

In order for Unity to register UI actions in a scene, you need to have an EventSystem & Input Module attached to a game object. You can auto-create one by selecting GameObject/UI/EventSystem.

1.4 INSPECTOR WALKTHROUGH

The main script is on the Essence_Menu game object. This handles all the menu navigation and animations. The other important script is the SettingsManager found on the SETTINGS game object. That script controls the settings values and changes.

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.

Title Screen Display – The ‘PressKey’ text component.

User Prompt Key – The key that the user has to press in order to close the Title Screen.

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 Offset – The horizontal offset from the center of the screen which is (0,0).

Load Icon Y Offset – The vertical offset from the center of the screen which is (0,0).

Load Screen Display – The loading screen Text component.

Loading Screen Text – The string name for the loading text.

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 slider component on the multiplayer tab.

Rank Text – The text component displaying the rank based on experience bar.

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.

Ready Text Display – The text that toggles between Ready/Not-Ready

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

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 .

 

1.5 CHANGING SCENES

One of the features included with Essence is the ability to assign New Game & Load Game scenes directly to the inspector. By default, the New Game scene is set to SecondScene which is the second demo scene included. You can change this to whatever scene you want to load after the user starts a new game in the menu.

 

For Load Game, the scene name needs to be set as the Saved Scene Name string variable through your own code. If you pass in the scene name, the UIManager will handle the loading animations.

 

1.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 button.

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.

 

1.7 WINDOWS STARTING 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.

 

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

 

2.0 MODIFYING MENUS

While some of the design of the menu is hard coded, making changing major aspects not intended, you can easily add/remove buttons in any of the vertical or horizontal layout groups allowing you to customize the content within many sub-menus.

2.1 SCENE LOADING

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.

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.

 

3.0 TIPS

Every variable on UIManager has a tooltip describing its function, so you don’t have to guess what they are for. Hover over the variable in the inspector to show the tooltip.

NOTE* Animations are used universally throughout the package, so be careful about changing them. If you want to change animation and not have it affect all other buttons that are prefabbed, make sure to duplicate the Animator component AND all of its individual menu animations and swap them out.

NOTE* The Settings menu doesn’t have functionality. It’s just a visual template for implementing your own 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?

9 + 1 =