0% found this document useful (0 votes)
42 views

Introduction: How To Make A Main Menu in Unity

This document provides instructions for creating a basic main menu in Unity, a 3D game design software. The menu includes a game title, start button, and quit button with customized fonts and backgrounds. The steps cover adding a plane and camera, lighting, textures, text objects, importing fonts, and writing scripts to change text colors on hover and make the buttons trigger loading a level or quitting when clicked. The overall process involves setting up the visual elements, importing assets, and programming the button interactions and level loading.

Uploaded by

jorgernes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Introduction: How To Make A Main Menu in Unity

This document provides instructions for creating a basic main menu in Unity, a 3D game design software. The menu includes a game title, start button, and quit button with customized fonts and backgrounds. The steps cover adding a plane and camera, lighting, textures, text objects, importing fonts, and writing scripts to change text colors on hover and make the buttons trigger loading a level or quitting when clicked. The overall process involves setting up the visual elements, importing assets, and programming the button interactions and level loading.

Uploaded by

jorgernes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

HOW TO MAKE A MAIN MENU IN UNITY

Introduction: How to Make a Main Menu in Unity

In this Instructable, I explain how to make a start menu for a game


in Unity, a 3D game design software that is free to download. This
is a simple menu, but the concepts can be easily applied to more
complex main menus.

Menu includes:

Game title, start button, quit button with customized fonts.

Start and quit button change colors when hovered over.

Customized background.
Step 1: Make a Plane & Position It in Front of the
Camera

Open Unity and save the scene as MainMenu.

Click Create - Plane in the Hierarchy panel. Rename it


"Background."

Rotate the Main Camera 90 degrees downward and change its


Projection from Perspective to Orthographic.

Adjust the camera's transform so it is 8-10 units above the menu,


looking straight down.

Scale the plane Background to fit the camera preview exactly.

When you are done, it should look similar to the image above.
Step 2: Light It Up

Add lights. Do this by selecting Create in the Hierarchy panel and


clicking Directional Light.

It does not matter where in 3D space a directional light is; it will


provide the same lighting no matter what.

Therefore, after adjusting the light's direction to shine down on the


background, raise the light up 20 units or so in the Y direction to
keep your field of vision clear in the scene view.

I adjusted the light to have a transform of (0, 20, 0) position and


(60,0,-20) rotation.

I also changed its Intensity to 0.4.

Once again, see the image for what this should look like when you
have completed the step.
Step 3: Add a Texture

Our background is rather plain-looking right now, but we can spice


it up easily enough. Just take a digital camera/smartphone and
take a photo of something convenient and interesting, such as the
floor, ceiling, walls, etc., and upload it to your computer.

Create a new folder called Textures in your Assets folder for the
Unity project you are working on. Right click the folder in the
Project panel in Unity and select, "Show in Explorer." Copy and
paste the picture you took into the Textures folder.
With your Background selected in the Hierarchy, click and drag
the picture from the Textures folder in the Project panel to
Inspector panel, where it should be added as the new texture for
the background. See the image.

Step 4: Add Text

Create an empty Game Object using the Game Object dropdown


toolbar at the top of the Unity window. Rename it "Text." Reset its
transform.

Click Create - 3D Text in the Hierarchy panel. Reset its transform.

Rename the 3D Text object and enter the text you want it to
display in its Text Mesh component in the Inspector.
Rotate it 90 degrees about the X or Z axis so that is displays
properly in the camera's view.

Drag the 3D text object into the empty Text game object in the
Hierarchy. Be

Duplicate the 3D text as desired.

Step 5: Go Get Some Fonts (that You Already


Have)

You already have lots of fonts. You can access them (on
Windows) by opening Explorer and going to the folder called
Fonts, which is located under OS/Windows/Fonts.

In the Unity project panel, create a new folder in Assets and call it
Fonts, as well.
Copy and paste the fonts you want for your Unity project from your
computer's fonts folder to the new Fonts folder you created within
the Assets folder for your project.

Note: This will most likely copy over several different files for
each font, one for regular, bold, italic, etc.

Select the 3D text whose font you want to change in the Hierarchy
panel, and drag the desired font from the fonts folder in the project
panel to the box labeled "font" in the Text Mesh component in the
Inspector.

You can change the font color, size, and other other attributes in
the Text Mesh component of the 3D text. This will appear in the
Inspector panel, provided you have the 3D text you want to edit
selected in the Hierarchy.

The text will most likely look a little blurry. You can clean this up by
making the font size significantly larger, though this will mess up
the camera's view at this point, so you would have to readjust the
camera and the background plane's size.
Step 6: Make the Text Change Color When You
Hover Over It

Create a new folder called Scripts in the project panel.

Create a new CSharp script and call it MouseHover.

Open the script in MonoDevelop.

There are three functions in this script. The first tells the text to be
its original color. The second tells the text to change color when
the mouse is touching it, and the third tells the text to go back to
its original color after the mouse is no longer hovering over it.
void Start(){

renderer.material.color = Color.black;

void OnMouseEnter(){

renderer.material.color = Color.red;

void OnMouseExit() {

renderer.material.color = Color.black;

Add the script to each piece of text by dragging it from the project
panel to the 3D text object's name in the Hierarchy.

In order to make the script work, we need to add colliders to each


of the pieces of 3D text so that the code knows whether or not the
mouse is touching them.

To add a collider, select a piece of 3D text in the Hierarchy, go to


the Inspector panel, and select Add Component - Physics - Box
Collider. Add the box collider to each piece of text and check off
the box that says "Is Trigger."

Test whether your buttons change color by clicking the play button
at the top middle of the screen and hovering your mouse.
Step 7: Write a Script to Control the Buttons

Create a new script and call it MainMenu. File it in your Scripts


folder and open it in MonoDevelop.

Declare Boolean (true/false) variables, one for each button you


would like to have on your menu. I have two buttons, so I wrote:

public bool isStart;


public bool isQuit;

Then, write a function called OnMouseUp(). This activates when


the mouse button is released, which is a better way to activate a
button than OnMouseDown() because it prevents the function
from being executed repeatedly while the mouse button is held
down.

void OnMouseUp(){

if(isStart)

Application.LoadLevel(1);

if (isQuit)

Application.Quit();

}
Application.LoadLevel(1) loads scene number 1 of the game. (The
menu scene should be level 0. You can change which scene is
which in Build Settings, under File.)

Application.Quit() quits the game, though this will only do


something if the game is open as a PC/Mac application. Nothing
will happen if the game is running in Unity or online.

Step 8: Make the Buttons Do Things!


Add the MainMenu script to each of your 3D text objects serving
as buttons.

Because you declared public bools for each category of button,


they should show up in the Inspector for each button. Go to the
Inspector, and check the appropriate boolean variable for each
button. See the image above for what this should look like.

That's it, you are done! You can add an additional line of code to
your MainMenu script to make sure it is working. Just tell it to
change the color of the button when you click it (to a different color
than when you hover over it).

void OnMouseUp() {

if (isQuit) {

Application.Quit ();

} if(isStart) {

Application.LoadLevel (1);

renderer.material.color=Color.cyan;

http://www.instructables.com/id/How-to-make-a-main-menu-in-Unity/

You might also like