Unity 2018 By Example - Alan Thorn - E-Book

Unity 2018 By Example E-Book

Alan Thorn

0,0
40,81 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Build exciting 2D/3D games and virtual reality applications with the help of hands-on examples




Key Features



  • Create five different types of games from scratch with Unity 2018


  • Import custom content into Unity from third-party tools such as Maya and Blender


  • Learn to build NPCs with artificial intelligent behavior.





Book Description



Unity is the most exciting and popular engine used for developing games. With its 2018 release, Unity has become the primary source of both game development and virtual reality content.






In Unity 2018 By Example, you'll learn how to use Unity in order to make amazing games from popular genres - from action shooters to mind-bending puzzle games to adventure and Virtual Reality (VR) games. Even if you have no previous experience of using Unity, this book will help you understand the toolsets it provides in depth. In addition to this, you'll understand how to create time-critical collection games, twin-stick space shooters, platformers, and action-fest games with intelligent enemies. Finally, you'll get to grips with creating VR games with the new toolsets introduced by Unity to help you develop amazing VR experiences.






To make things easier, you will be provided with step-by-step tutorials for making five great games in Unity 2018, along with a detailed explanation of all the fundamental concepts. By the end of this book, you'll have established a strong foundation in making games with Unity 2018.





What you will learn



  • Understand core Unity concepts, such as game objects, components, and scenes


  • Study level-design techniques for building immersive and interesting worlds


  • Make functional games with C# scripting


  • Use the toolset creatively to build games with different themes and styles


  • Handle player controls and input functionality


  • Work with terrains and world-creation tools


  • Get to grips with making both 2D and 3D games



Who this book is for



You don't need to have any previous experience with Unity to enjoy Unity 2018 By Example, although you need to have basic knowledge of C#.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 334

Veröffentlichungsjahr: 2018

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

Unity 2018 By Example - Second Edition
Why subscribe?
PacktPub.com
Contributors
About the author
About the reviewer
Packt is Searching for Authors Like You
Preface
Who this book is for
What this book covers
To get the most out of the book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
1. Unity Fundamentals
Game design
Getting started – Unity and projects
Projects and project folders
Importing assets
Starting a level
Transformations and navigation
Scene building
Lighting and sky
Play testing and the Game tab
Adding a water plane
Adding a coin to collect
Summary
Test your knowledge
Further Reading
2. Creating a Collection Game
Creating a coin material
C# scripting in Unity
Counting coins
Code Sample 2.3
Collecting coins
Code Sample 2.5
Coins and prefabs
Timers and countdowns
Code Sample 2.6
Celebrations and fireworks!
Code Sample 2.7
Play testing
Building
Summary
Test your knowledge
Further reading
3. Creating a Space Shooter
Looking ahead – the completed project
Getting started with a space shooter
Creating a player object
Player input
Code Sample 3.1
Configuring the game camera
Bounds locking
Code Sample 3.2
Health
Code Sample 3.3
Death and particles
Code Sample 3.4
Enemies
Code Sample 3.6
Code Sample 3.7
Code Sample 3.8
Enemy spawning
Code Sample 3.9
Summary
Test your knowledge
Further reading
4. Continuing the Space Shooter
Guns and gun turrets
Ammo prefabs
Code Sample 4-1
Ammo spawning
Code Sample 4.2
Code Sample 4.3
User controls
Scores and scoring – UI and text objects
Working with scores – scripting with text
Code Sample 4.4
Polishing
Testing and diagnosis
Building
Summary
Test your knowledge
Further Reading
5. Creating a 2D Adventure Game
A 2D Adventure – getting started
Importing assets
Creating an environment – getting started
Environment Physics
Creating a player
Scripting the player movement
Code Sample 5.1
Optimization
Summary
Test your knowledge
Further reading
6. Continuing the 2D Adventure
Moving platforms
Code Sample 6.1
Creating other scenes – levels 2 and 3
Kill zones
Code Sample 6.2
The UI health bar
Code Sample 6.3
Ammo and hazards
Gun turrets and ammo
NPCs and quests
Code Sample 6.8
Summary
Test your knowledge
Further Reading
7. Creating Artificial Intelligence
An overview of the project
Getting started
Terrain construction
Navigation and navigation meshes
Building an NPC
Code Sample 7.1
Creating patrolling NPCs
Summary
Test your knowledge
Further Reading
8. Continuing with Intelligent Enemies
Enemy AI – range of sight
Code Sample 8.1
An overview of Finite State Machines
Code Sample 8.2
The Patrol state
Code Sample 8.3
The Chase state
Code Sample 8.4
The Attack state
Code Sample 8.5
Summary
Test your knowledge
Further Reading
9. Entering Virtual Reality
Project Overview – Getting Started
Setting Scene Lighting
Post-Processing Stack 2
Preparing for VR
Summary
Test your knowledge
10. Completing the VR Game
Object Pool and Spawning
Code Sample 10.1
Code Sample 10.2
Creating Intelligent Enemies – Navigation
Creating Intelligent Enemies – FSMs
Code Sample 10.3
Code Sample 10.4
Attack and Damage
Code Sample 10.5
Summary
Test your knowledge
A. Test Your Knowledge Answers
Chapter 1- Unity Fundamentals
Chapter 2- Creating a Collection Game
Chapter 3- Creating a Space Shooter
Chapter 4- Continuing the Space Shooter
Chapter 5- Creating a 2D Adventure
Chapter 6- Continuing the 2D Adventure
Chapter 7- Creating Artificial Intelligence
Chapter 8- Continuing with Intelligent Enemies
Chapter 9- Entering Virtual Reality
Chapter 10- Completing the VR Game
Other Books You May Enjoy
Leave a review - let other readers know what you think
Index

Unity 2018 By Example - Second Edition

Unity 2018 By Example - Second Edition

Copyright © 2018 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Commissioning Editor: Kunal Chaudhari

Acquisition Editor: Larissa Pinto

Content Development Editor: Onkar Wani

Technical Editor: Ralph Rosario

Copy Editor: Safis Editing

Project Coordinator: Devanshi Doshi

Proofreader: Safis Editing

Indexer: Rekha Nair

Graphics: Jason Monteiro

Production Coordinator: Aparna Bhagat

First published: July 2016

Second edition: July 2018

Production reference: 1300718

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK.

ISBN 978-1-78839-870-1

www.packtpub.com

mapt.io

Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.

Why subscribe?

Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionalsLearn better with Skill Plans built especially for youGet a free eBook or video every monthMapt is fully searchableCopy and paste, print, and bookmark content

PacktPub.com

Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.

At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.

Contributors

About the author

Alan Thorn is an educator, author, and multidisciplinary games-developer with 18 years of tech-industry experience. He is currently Head of Department for the Games Design and Development MA degree at the BAFTA-winning National Film and Television School, London. He has written 27 technical books on game development and presented 29 online training courses. He founded the game-studio Wax Lyrical Games and created the award-winning game Baron Wittard: Nemesis of Ragnarok.

About the reviewer

Adam Larson started programming professionally in 2005. He has shipped 14 console games, 2 PC titles, and 8 mobile games. In 2012, he founded a company that focused on using Unity for business applications. He spent the following 5 years building a million dollar agency that built high-end software. Recently, he moved to another start-up that focuses on revolutionizing the banking industry. When he isn't doing something with technology, you will find him spending time with his wife and three kids.

Packt is Searching for Authors Like You

If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.

Preface

Video games are a cultural phenomenon that has captivated, entertained, and moved billions of people worldwide over the past 50 years. As an industry and movement, video games are an exciting place to be, both for the developer and the artist. In these roles, your vision, ideas, and work can influence wide audiences, shaping and changing generation after generation in an unprecedented way. In more recent times, there's been a general movement toward democratizing game development, making the development process simpler, smoother, and more accessible to a wider audience, including developers perhaps working from home on a very limited budget. Instrumental in this movement is the Unity engine, which forms the main subject of this book. The Unity engine is a computer program that works with your existing asset pipeline (such as 3D modeling software) and is intended for compiling video games that work seamlessly across multiple platforms and devices, including Windows, Mac, Linux, Android, iOS, and Windows Phone. Using Unity, developers import ready-made assets (such as music, textures, and 3D models), and assemble them into a coherent whole, forming a game world that works by a unified logic. Unity is an amazing program. The latest version is free for most people to download and use, and it works well with many other programs, including free software such as GIMP and Blender. This book focuses on the Unity engine and how it can be used in a practical context for making playable and fun games. No prior knowledge of Unity is expected, although some knowledge of programming and scripting (such as JavaScript, ActionScript, C, C++, Java, or C#) would be beneficial. Let's now take a look at what this book covers, on a chapter-by-chapter basis.

Who this book is for

You don't need to have any previous experience with Unity to enjoy Unity 2018 by Example, although you need to have basic knowledge of C#.

What this book covers

This book explores how to use the Unity engine in a hands-on, practical way by looking at concrete examples that result in real-world playable games. Specifically, it focuses on the implementation of 5 distinct projects divided across 10 chapters, 2 chapters per project. Let's take a look at what these projects are:

Chapter 1, Unity Fundamentals, begins our journey into Unity by creating a first-person collection game. This is a great starting point if you're totally new to Unity and are ready to create your first game.

Chapter 2, Creating a Collection Game, continues from the previous chapter and completes the first project. It assumes that you have completed the first chapter and brings a closure to our project, leading neatly to the next chapter.

Chapter 3, Creating A Space Shooter, marks the beginning of our second project, focusing on the creation of a space shooter game. Here, we'll create a project in which the player must shoot the oncoming enemies.

Chapter 4, Continuing the Space Shooter, completes the space shooter project, taking the project from its state in the previous chapter and adding final touches to it.

Chapter 5, Creating a 2D Adventure Game, enters the world of 2D and UI functionality. Here, we'll explore Unity's wide range of 2D features in making a side-view platformer game that relies on 2D physics.

Chapter 6, Continuing the 2D Adventure, completes the 2D adventure game project that was started in the previous chapter, adding the final touches and linking it together with the overarching game logic. This is a great place to see how multiple parts and facets of a game come together to form a whole.

Chapter 7, Creating Artificial Intelligence, focuses on artificial intelligence and creating enemies that can patrol, chase, and attack the player's character at relevant times, while cleverly navigating their way around the level.

Chapter 8, Continuing with Intelligent Enemies, brings closure to the AI project started in the previous chapter. Here, we'll see how to use finite-state machines to achieve powerful intelligence functionality that'll help us in a variety of scenarios.

Chapter 9, Entering Virtual Reality, explores how to create a first-person shooter in VR where the player must tackle waves on oncoming enemies. In this chapter, we'll lay the foundations for creating a VR game.

Chapter 10, Completing the VR Game, completes the VR project by adding gameplay elements, core functionality, and by creating a build.

Appendix, Test Your Knowledge Answers, the answers to the Test Your Knowledge section of each chapter.

To get the most out of the book

This book contains almost everything you need to follow along. Each chapter considers practical, real-world projects for learning Unity and includes companion files that can be downloaded and used. The only thing you need, apart from this book and your concentration, is a copy of the latest version of Unity. At the time of writing, this is Unity 5.3.1. This software is available for free as a personal edition, and it can be downloaded from the Unity website at https://unity3d.com/. In addition to Unity, if you want to create props, character models, and other 3D assets, you'll also need 3D modeling and animation software, such as 3DS Max, Maya, or Blender; you'll also need image editing software, such as Photoshop or GIMP. Blender can be downloaded and used for free from http://www.blender.org/. Also, GIMP can be downloaded and used for free from https://www.gimp.org/.

Download the example code files

You can download the example code files for this book from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

Log in or register at http://www.packtpub.com.Select the SUPPORT tab.Click on Code Downloads & Errata.Enter the name of the book in the Search box and follow the on-screen instructions.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

WinRAR / 7-Zip for WindowsZipeg / iZip / UnRarX for Mac7-Zip / PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Unity-2018-By-Example-Second-Edition. In case there's an update to the code, it will be updated on the existing GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Download the color images

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://www.packtpub.com/sites/default/files/downloads/Unity2018ByExampleSecondEdition_ColorImages.pdf.

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. For example; "Mount the downloaded WebStorm-10*.dmg disk image file as another disk in your system."

A block of code is set as follows:

[default] exten => s,1,Dial(Zap/1|30) exten => s,2,Voicemail(u100) exten => s,102,Voicemail(b100) exten => i,1,Voicemail(s0)

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

[default] exten => s,1,Dial(Zap/1|30) exten => s,2,Voicemail(u100) exten => s,102,Voicemail(b100) exten => i,1,Voicemail(s0)

Any command-line input or output is written as follows:

# cp /usr/src/asterisk-addons/configs/cdr_mysql.conf.sample /etc/asterisk/cdr_mysql.conf

Bold: Indicates a new term, an important word, or words that you see on the screen, for example, in menus or dialog boxes, also appear in the text like this. For example: "Select System info from the Administration panel."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: Email [email protected], and mention the book's title in the subject of your message. If you have questions about any aspect of this book, please email us at <[email protected]>.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book we would be grateful if you would report this to us. Please visit, http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at <[email protected]> with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit http://authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packtpub.com.

Chapter 1. Unity Fundamentals

This chapter starts the first project on our list, which will be a fun collection game. Remember, it doesn't matter if you've never used Unity before. We'll go through everything necessary step by step. By the end of the next chapter, you'll have pieced together a simple, but complete and functional, game. This is an important thing to achieve because you'll get familiar with a start-to-end game development workflow. This chapter will demonstrate the following topics:

Game design Projects and foldersAsset importing and configurationLevel designGame objectsHierarchies

Game design

Let's make a coin collection game. Here, the player should control a character in the first-person mode, and he must wander the level, collecting all coins before a time limit runs out. If the timer runs out, the game is lost. On the other hand, if all coins are collected before the timer expires, the game is won. The first-person controls will use the default WASD keyboard setup, where W moves forward, A and S move left and right, and D walks backward. Head movement is controlled using the mouse, and coins are collected by simply walking into them. See Figure 1.1, featuring the coin collection game in action in the Unity Editor.

The great benefit in making this game is that it demonstrates all the core Unity features together and we don't need to rely on any external software to make assets, such as textures, meshes, and materials:

Figure 1.1: Preparing for a coin collection game (the completed game)

Note

The completedCollectionGame project, as discussed in this chapter and the next, can be found in the book companion files in the Chapter01/CollectionGame folder.

Getting started – Unity and projects

Every time you want to make a new Unity game, including coin collection games, you'll need to create New Project. Generally speaking, Unity uses the term Project to mean a Game. There are two main ways to make a new project, and it really doesn't matter which one you choose because both end up in the same place. If you're already in the Unity interface, looking at an existing scene or level, you can select File | New Project from the application menu. See Figure 1.2. It may ask if you want to save changes to the currently opened project and you should choose either Yes or No, depending on what you need.

After selecting the New Project option, Unity leads you to the project creation wizard:

Figure 1.2: Creating a new project via the main menu

Alternatively, if you've just started Unity for the first time, you'll probably begin at the welcome dialog. See Figure 1.3. From here, you can access the new project creation wizard by choosing the NEW PROJECT button:

Figure 1.3: The Unity welcome screen

On reaching the NEW PROJECT creation wizard, Unity can generate a new project for you on the basis of some basic settings. Simply fill in the name of your project (such as CollectionGame), and select a folder on your computer to contain the project files that will be generated automatically. Finally, select the 3D option from the template dropdown to create a 3D game, as opposed to 2D, and then click on the Create project button to complete the project generation process. See Figure 1.4:

Figure 1.4: Creating a new project

Projects and project folders

Unity has now created a blank, new, and empty project. This represents the starting point for any game development project and is the place where development begins. The newly created project contains nothing initially: no meshes, textures, or any other Assets. You can confirm this by simply checking the Project panel area at the bottom of the editor interface. This panel displays the complete contents of the project folder, which corresponds to an actual folder on your local drive created earlier by the project wizard. This folder should be empty. See Figure 1.5.

This panel will later be populated with more items, all of which we can use to build a game:

Figure 1.5: The Unity project panel docked at the bottom of the interface

Note

If your interface looks radically different from Figure 1.5, in terms of its layout and arrangement, then you can reset the UI layout to its defaults. To do this, click on the Layout drop-down menu from the top-right corner of the editor interface, and choose Default. See Figure 1.6:

Figure 1.6: Switching to the default interface layout

You can view the contents of your project folder directly via either Windows Explorer or Mac Finder, by right-clicking the mouse in the Project panel from the Unity Editor to reveal a context menu, and from there, choose the Show in Explorer (Windows) or Reveal in Finder (Mac) option. See Figure 1.7:

Figure 1.7: Displaying the project folder via the Project panel

Clicking on Show in Explorer displays the folder contents in the default system file browser. See Figure 1.8. This view is useful to inspect files, count them, or back them up. However, don't change the folder contents manually this way via Explorer or Finder. Specifically, don't move, rename, or delete files from here, because doing so can corrupt your Unity project irretrievably. Instead, delete and move files where needed within the Project panel in the Unity Editor. This way, Unity updates its metadata as appropriate, ensuring that your project continues to work properly:

Figure 1.8: Viewing the Project panel from the OS file browser

Note

Viewing the project folder in the OS file browser will display additional files and folders not visible in the Project panel, such as Library and ProjectSettings, and maybe a Temp folder. Together, these are known as the project metadata. This is not directly a part of your project per se, but contains additional settings and preferences that Unity needs to work properly. These folders and their files should not be edited or changed.

Importing assets

Assets are the ingredients or building blocks for games—the building blocks from which they're made. Assets include meshes (or 3D models), such as characters, props, trees, houses, and more: textures, which are image files such as JPEGs and PNGs (these determine how the surface of a mesh should look); music and sound effects to enhance the realism and atmosphere of your game, and finally, scenes, which are 3D spaces or worlds where meshes, textures, sounds, and music live, exist, and work together holistically as part of a single system. Thus, games cannot exist without assets—they would otherwise look completely empty and lifeless. For this reason, we'll need assets to make the coin collection game we're working toward. After all, we'll need an environment to walk around in and coins to collect!

Unity, however, is a game engine and not primarily an asset creation program, like Blender or Photoshop (though it can create assets). This means that assets, such as characters and props, are typically made first by artists in external, third-party software. From here, they are exported and transferred ready-made to Unity, and Unity is responsible only for bringing these assets to life in a coherent game that can be played. Third-party asset creation programs include Blender (which is free of charge), Mayaor 3DSMax to make 3D models, Photoshop or GIMP (which is free of charge) to create textures, and Audacity (which is free of cost) to generate audio. There are plenty of other options too. The details of these programs are beyond the scope of this book. In any case, Unity assumes that you already have assets ready to import to build a game. For the coin collection game, we'll use assets that ship with Unity. So, let's import these to our project.

To do this, select Assets | Import Package from the application menu. Then select Characters, ParticleSystems, Environment, and Prototyping. See Figure 1.9:

Figure 1.9: Importing assets via the Import Package menu

Each time you import a package from the menu, you'll be presented with an Import dialog. Simply leave all settings at their defaults, and click on Import. See Figure 1.10:

Figure 1.10: Choosing Assets to import

By default, Unity decompresses all files from the package (a library of assets) into the current project. After importing, lots of different assets and data will have been added to the Project, ready for use. These files are copies of the originals. So, any changes made to the imported files will not affect or invalidate the originals, which Unity maintains internally.

The files include models, sounds, textures, and more. These are listed in the Unity Editor from the Project panel. See the following screenshot:

Figure 1.11: Browsing imported assets from the Project panel

Tip

When selecting Assets | Import from the application menu, if you don't see all, or any, asset packages listed, you can download and install them separately from the Unity website at https://unity3d.com/. From the downloads page, choose the AdditionalDownloads option, and then select the Standard Assets package. See Figure 1.12.

Figure 1.12: Downloading the Standard Assets package

The imported assets don't exist yet in our game scene or level. They don't appear in the game, and they won't do anything when the level begins! Rather, they're simply added to the Project panel, which behaves as a library or repository of assets, from which we can pick and choose to build up a game when needed. The assets imported thus far are built-in into Unity and we'll continually using them in subsequent sections to make a functional coin collection game. To get more information about each asset, you can select the asset by clicking on it with the mouse, and asset-specific details will be shown on the right-hand side of the Unity Editor in the Inspector. The Inspector is a property sheet editor that appears on the right-hand side of the interface.

It is context-sensitive and always changes to display properties for the selected object. See Figure 1.13:

Figure 1.13: The Inspector displays all the properties for the currently selected object

Starting a level

We've now created a Unity project and imported a large library of assets via the Unity Standard Asset package, including architectural meshes for walls, floors, ceilings, and stairs. This means that we're now ready to build our first level using these assets! Remember, in Unity, a scene means a level. The word scene and level can be used interchangeably here. They refer simply to a 3D space, that is, the space-time of the game world—the place where things exist. Since all games happen in space and time, we'll need a scene for the coin collection game. To create a new scene, select File | New Scene from the application menu or press Ctrl + N on the keyboard. When you do this, a new and empty scene is created. You can see a visualization or preview of the scene via the Scene tab, which occupies the largest part of the Unity interface. See Figure 1.14:

Figure 1.14: The Scene tab displays a preview of a 3D world

Tip

As shown in Figure 1.14, other tabs besides the scene are visible and available in Unity. These include a Game tab and an Animator tab; in some cases, there could be more as well. For now, we can ignore all the tabs except Scene. The Scene tab is designed for quick and easy previewing of a level during its construction.

Each new scene begins empty; well, almost empty. By default, each new scene begins with two objects; specifically, a Light to illuminate any other objects that are added and a Camera to display and render the contents of the scene from a specific vantage point. You can view a complete list of all the objects existing in the scene using the Hierarchy panel, which is docked to the left-hand side of the Unity interface. See Figure 1.15. This panel displays the name of every GameObject in the scene. In Unity, the word GameObject simply refers to a single, independent, and unique thing that lives within the scene, whether visible or not: meshes, lights, cameras, props, and more. Hence, the Hierarchy panel tells us about everything in the Scene:

Figure 1.15: The Hierarchy panel

Tip

You can even select objects in the scene by clicking on their name in the Hierarchy panel.

Next, let's add a floor to the scene. After all, the player needs something to stand on! We could build a floor mesh from scratch using third-party modeling software, such as Maya, 3DS Max, or Blender. However, the Unity Standard Asset package, which was imported earlier, contains floor meshes that we can use. This is very convenient. These meshes are part of the Prototyping package. To access them via the Project panel, open the Standard Assets folder by double-clicking it and then access the Prototyping | Prefabs folder. From here, you can select objects and preview them from the Inspector. See Figure 1.16:

Tip

You could also quickly add a floor to the scene by choosing GameObject | 3D Object | Plane from the application menu. However, this just adds a dull, grey floor, which isn't very interesting. Of course, you could change its appearance. As we'll see later, Unity lets you do this. However, for this tutorial, we'll use a specifically modeled floor mesh via the Standard Assets package from the Project panel.

Figure 1.16: The Standard Assets/Prototyping package contains many meshes for quick scene building

The mesh named FloorPrototype64x01x64 (as shown in Figure 1.16) is suitable as a floor. To add this mesh to the scene, simply drag and drop the object from the Project panel to the Scene view and then release the mouse. See Figure 1.17. When you do this, notice how the Scene view changes to display the newly added mesh within the 3D space, and the mesh name also appears as a listing in the Hierarchy panel:

Figure 1.17: Dragging and dropping mesh assets from the Project panel to the Scene view will add them to the scene

The floor mesh asset from the Project panel has now been instantiated as a GameObject in the scene. This means that a copy or clone of the mesh asset, based on the original in the Project panel, has been added to the scene as a separate GameObject. The Instance (or GameObject) of the floor in the scene still depends on the floor asset in the Project panel. However, the asset does not depend on the instance. This means that, by deleting the floor in the scene, you will not delete the asset. However, if you delete the asset, you will invalidate the GameObject. You can also create more floors in Scene if you want by dragging and dropping the floor asset many times from the Project panel to the Scene view.

Each time, a new instance of the floor is created in the Scene as a separate and unique GameObject, although all the added instances will still depend on the single floor asset in the Project panel. See Figure 1.18:

Figure 1.18: Adding multiple instances of the floor mesh to the scene

We don't actually need the duplicate floor pieces. So, let's delete them. Just click on the duplicates in the Scene view and then press Delete on the keyboard to remove them. Remember, you can also select and delete objects by clicking on their name in the Hierarchypanel and pressing Delete. Either way, this leaves us with a single floor piece and a solid start to building our scene. One remaining problem, though, concerns the floor and its name. By looking carefully in the Hierarchy panel, we can see that the floor name is FloorPrototype64x01x64. This name is long, obtuse, and unwieldy. We should change it to something more manageable and meaningful. This is not technically essential but is good practice to keep our work clean and organized. There are many ways to rename an object.

One way is to first select it and then enter a new name in the name field in the Object Inspector. I'll rename it WorldFloor. See Figure 1.19:

Figure 1.19: Renaming the floor mesh

Transformations and navigation

A scene with a floor mesh has been established, but this alone is uninteresting. We need to add more, such as buildings, stairs, columns, and perhaps more floor pieces. Otherwise, there would be no world for the player to explore. Before building on what we've got, however, let's make sure that the existing floor piece is centered at the world origin. Every point and location within a scene is uniquely identified by a coordinate, measured as an (X, Y, Z) offset from the world center (origin).

The current position for the selected object is always visible from the Object Inspector. In fact, the Position, Rotation, and Scale of an object are grouped together under a category (component) called Transform. Position indicates how far an object should be moved in three axes from the world center. Rotation indicates how much an object should be turned or rotated around its central axes. Scale indicates how much an object should be shrunk or expanded to smaller or larger sizes. A default Scale of one means that an object should appear at normal size, two means twice the size, and 0.5 means half the size, and so on. Together, the Position, Rotation and Scale of an object constitute its transformation. To change the position of the selected object, you can simply type new values in the X, Y, and Z fields for Position. To move an object to the world center, simply enter (0, 0, and 0), as shown in Figure 1.20:

Figure 1.20: Centering an object to the world origin

Setting the position of an object, as we've done here, by typing numerical values is acceptable and appropriate for the specifying of exact positions. However, it's often more intuitive to move objects using mouse-based controls. To do this, let's add a second floor piece and position it away from the first instance. Drag and drop a floor piece from the Project panel in Scene to create a second floor GameObject. Then click on the new floor piece to select it and switch to the Translate tool. To do this, press W on the keyboard or click on the translate tool icon from the toolbar at the top of the editor interface. The translate tool allows you to reposition objects in Scene. See Figure 1.21:

Figure 1.21: Accessing the translate tool

When the translate tool is active and an object is selected, a Gizmo appears centered on the object (three colored axes visible in the Scene tab). The translate Gizmo appears as three colored perpendicular axes: red, green, and blue corresponding to X, Y, and Z respectively.

To move an object, hover your cursor over one of the three axes (or planes between axes), and then click and hold the mouse while moving it to slide the object in that direction. You can repeat this process as often as needed to ensure that your objects are positioned where you need them to be. Use the translate tool to move the second floor piece away from the first. See Figure 1.22:

Figure 1.22: Translate an object using the translate Gizmo

You can also rotate and scale objects using the mouse, as with translate. Press E to access the rotate tool or R to access the scale tool, or you can activate these tools using their respective toolbar icons from the top of the editor. When these tools are activated, a Gizmo appears centered on the object, and you can click and drag the mouse over each specific axis to rotate or scale objects as needed. See Figure 1.23:

Figure 1.23: Accessing the rotate and scale tools

Being able to translate, rotate, and scale objects quickly through mouse and keyboard combinations is very important when working in Unity. For this reason, make using the keyboard shortcuts a habit, as opposed to accessing the tools continually from the toolbar.

However, in addition to moving, rotating, and scaling objects, you'll frequently need to move around yourself in the Scene view in order to see the world from different positions, angles, and perspectives. This means that you'll frequently need to reposition the scene preview camera in the world. You'll want to zoom in and zoom out of the world to get a better view of objects and change your viewing angle to see how objects align and fit together properly. To do this, you'll need to make extensive use of both the keyboard and mouse together.

To zoom closer or further from the object you're looking at, simply scroll the mouse wheel up or down—up zooms in and down zooms out. See Figure 1.24:

Figure 1.24: Zooming in and out

To pan the Scene view left or right, or up or down, hold down the middle mouse button while moving the mouse in the appropriate direction. Alternatively, you can access the pan tool from the application toolbar (or press Q on the keyboard) and then simply click and drag in the Scene view while the tool is active. Pan does not zoom in or out; it simply slides the camera left and right, or up and down:

Figure 1.25: Accessing the Pan tool

Sometimes, while building levels, you'll lose sight entirely of the object that you need. For example, your viewport camera could be focusing on a completely different place from the object you really want to click or see. In this case, you'll often want to shift the viewport camera automatically in order to focus on that specific object.

Specifically, you'll want to reposition and rotate the viewport as necessary to bring a desired object to the center of the view. To do this automatically, select the object to focus on (or frame) by clicking on its name from the Hierarchy panel. Then, press the F key on the keyboard. Alternatively, you can double-click its name in the Hierarchy panel. See Figure 1.26:

Figure 1.26: Framing a selected object

After framing an object, you'll often want to rotate around it in order to quickly and easily view it from all important angles. To achieve this, hold down the Alt key on the keyboard while clicking and dragging the mouse to rotate the view. See Figure 1.27:

Figure 1.27: Rotating around the framed object

Lastly, it's helpful to navigate a level in the Scene view using first-person controls, that is, controls that mimic how first-person games are played. This helps you experience the scene at a more personal and immersive level.

To do this, hold down the right mouse button and (with the button depressed) use the WASD keys on the keyboard to control forward, backward, and strafing movement. Movement of the mouse controls head orientation. You can also hold down the Shift key while moving to increase movement speed. See Figure 1.28:

Figure 1.28: Using first-person controls

The great thing