1. Trang chủ
  2. » Kinh Doanh - Tiếp Thị

Unity 2017 game development essentials, third edition

948 55 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 948
Dung lượng 29,8 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Entering the Third Dimension Getting to grips with 3D Coordinates Local space versus world space Vectors Cameras Projection mode – 3D versus 2D Polygons, edges, vertices, and meshes Shad

Trang 2

Unity 2017 Game Development Essentials

Trang 3

Unity 2017 Game Development Essentials Third 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 author, 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: Wilson D'souza

Acquisition Editor: Reshma Raman

Content Development Editor: Roshan Kumar

Technical Editor: Harshal Kadam

Copy Editor: Safis Editing

Project Coordinator: Devanshi Doshi

Proofreader: Safis Editing

Indexer: Aishwarya Gangawane

Graphics: Jason Monteiro

Production Coordinator: Shraddha Falebhai

First published: October 2009

Second edition: December 2011

Third edition: January 2018

Trang 4

To my mother's memory, Carmela Bandera, who always believed in me and granted me my inclination toward IT and a good education Thanks to my sister Viola, my partner Silvia, and my beloved Zoe, who grew up and took her first steps while this book was taking life, and who gives me daily inspiration for my creativity.

– Tommaso Lintrami

Trang 5

Mapt is an online digital library that gives you full access to over 5,000 booksand videos, as well as industry leading tools to help you plan your personaldevelopment and advance your career For more information, please visit ourwebsite

Trang 6

Why subscribe?

Spend less time learning and more time coding with practical e-booksand videos from over 4,000 industry professionals

Improve your learning with Skill Plans built especially for you

Get a free e-book or video every month

Mapt is fully searchable

Copy and paste, print, and bookmark content

Trang 8

Contributors

Trang 9

About the author

Tommaso Lintrami has been programming games right from the age of 9;

he studied music, micro electronics, and TV/cinema/game direction, and is adesigner, developer, composer, and writer He is a virtual reality andinteractive installations enthusiast with at least 19 years, commercialexperience working for several IT companies He has been working withUnity for over 9 years now and delivers IT teaching and training in Unity Hehas worked on a number of games on different platforms and is currentlyemployed at Freejam, working on Robocraft

Trang 10

About the reviewers

Ludovico Cellentani is a senior engine programmer at King AB, and he has

been working as a professional game programmer for almost 20 years.During this time, he has worked on a number of games released on variousplatforms that span between PC, console, and mobile

During the last 6 years, he has worked on a considerable number of games,

VR experiences, and gamification projects released for PC, mobile, andcustom-built computer installations, all powered by the Unity game engine

He is currently living with his wife and son in Stockholm, Sweden

Adam Larson has been a programmer on 15 titles across major consoles and

PC platforms He has worked on more than 50 mobile applications, with afew mobile games reaching more than a million downloads Today, he runsand operates a studio in Green Bay, Wisconsin, called Zymo Interactive,where they focus on using high-end gaming lessons in business and mobileapplications His passion for building great products has led his team to work

on some incredible projects in almost every conceivable industry

Adam volunteers on the TEALS program to help get computer science inevery high school across the United States He also teaches part-time as anadjunct professor at the University of Green Bay Adam is a father of threechildren and husband to Autum Larson You may just find the five of themout playing Pokemon Go together

Elias Tsiantas has been a programmer and content creator on five titles on

mobile and PC platforms Today, he works as a freelancer creating customapplications and/or content for companies on request His passion is

Trang 11

programming and 3Dmodelling/texturing since 25 years now Elias is a father

of four children and husband to Maria Vasileiadi

Trang 12

Packt is searching for authors like you

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

Trang 13

Table of Contents

Preface

Who this book is for

What this book covers

To get the most out of this book

Download the example code files Download the color images Conventions used

Get in touch

Reviews

1 Entering the Third Dimension

Getting to grips with 3D

Coordinates Local space versus world space Vectors

Cameras Projection mode – 3D versus 2D Polygons, edges, vertices, and meshes Shaders, materials, and textures

Rigidbody physics

Collision detection Softbody physics

The Cloth component Getting to grips with 2D in 3D

Ignoring one axis Understanding Sprites Essential Unity concepts

The Unity way – an example Assets

Scenes GameObjects Components Scripts Prefabs The interface

The Scene view and Hierarchy view Control tools

Scene navigation

Trang 14

Control bar Create button The Inspector The Project window The Game view Summary

2 Prototyping and Scripting Basics

Your first Unity project

A basic prototyping environment Setting the scene

Adding simple lighting Another brick in the wall Building the master brick Creating our first prefab And snap! It's a row

Grouping and duplicating with empty objects Build it up, knock it down!

Introducing C# scripting

A new behavior script or class What's inside a new C# Monobehaviour class Base Monobehaviour methods

Variables in C#

Comments Write the Shooter class

Declaring public variables Assigning scripts to objects Moving the camera

Local, private, and public variables Understanding Translate

Implementing Translate Testing the game so far Making a projectile

Creating the projectile prefab Creating and applying a material Adding physics with a Rigidbody Saving prefabs

Firing the projectile Using Instantiate() to spawn objects Adding a force to the Rigidbody Resetting the wall to initial state and clearing the proje ctiles

Trang 15

3 Creating and Setting Game Assets

Setting up the scene and preparing game assets

Placing the prefabs in the game Importing and placing background layers Implementing parallax scrolling

Making it last forever Using the Asset Store The FreeParallax component Understanding and setting up elements Playing in the middleground

Avoiding holes and discrepancies on the ground collider Putting in the foreground and special layers

Creating a death zone Spawning collectable items 2D animation basics

Importing animated Sprites The Animator component Animator state-machine editor Transitions between animation states Conditions and parameters

Final words Summary

4 Player Controller and Further Scripting

Working with the Inspector

Tags Layers Prefabs and the Inspector Scripting with Unity

Statements Variables Variable data types Using variables Public and private variables Declaring variables

Full code example

Functions Update() OnMouseDown() Writing custom functions Return type

Trang 16

Arguments Declaring a custom function Calling a custom function

If else statements Multiple conditions For loops Inter-script communication and Dot Syntax

Accessing other objects Find() and FindWithTag() SendMessage

GetComponent Programming for mobile Dot Syntax

Null reference exceptions Coroutines

Comments Further reading Anatomy of a 2D character

Extending the Platformer2DUserControl class Making the player and writing the game logic Analyzing, understanding, and modifying the component's source c ode

Defining a namespace Spawning collectible items Adding a timer

Making things difficult with health and obstacles Layer Collision Matrix

Making it look and sound better Adding a simple shadow for the character Inserting audio: environmental sfx, background music, sound even ts

Sprite shading with real-time lights Writing some additional game logic

Homework Summary

5 Character Animation with Unity

Unity Legacy Animation System

Importing character models and animations Importing animations using multiple model files Setting up the animation

Trang 17

Building the Player with Animator

What is an avatar in Unity?

Configuring an avatar Fixing issues with the default bone mapping Configuring muscle actions and settings Importing animation clips for Animator

Setting up animations to ensure correct looping Scaling the model

Understanding Animator

Animator component Animator component properties Animator controller

The Animator window Animator state machine Understanding the state machine Controlling a character's behavior with state machines Animation states

What's the Any State state?

Our first Blend Tree state Conclusions

Controlling Animator through code with parameters Root-motion animations

Using a better approach – Root motion Animation transitions

Setting the transitions between states Blend Trees

Modifying Unity standard assets classes to implement our playing character

Adding the final touches Cloth simulation – giving life to hero's hair and skirt Inverse Kinematics

Summary

6 Creating the Environment

Designing the game

Understanding and using the Terrain tool

Setting terrain features Setting the terrain size detail and resolution Importing and exporting 2D heightmaps

The terrain tool Terrain component Raise height Paint Height

Trang 18

Flatten Heightmap Smooth Height Paint Texture Place Trees Refresh (tree prototypes) Edit Trees

Mass placement of trees Paint details

Refresh (detail prototypes) Edit details

Terrain Settings Creating the island

Step 1 – Setting up the terrain Step 2 – Creating the island outline Step 3 – A small lake carving

Step 4 – Adding textures Painting procedure Sandy areas

Adding grass and rock Step 5 – Tree time

Step 6: The grass is always greener Step 7 – Let there be light!

Creating sunlight Procedural skybox Step 8 – Surrounding the island with sea water

A small lake Step 9: What's that sound?

Positional audio versus non-positional audio Audio file formats

The hills are alive!

Importing the book's asset package Further audio settings

Enabling positional 3D sound and setting up curves Step 10 – Walkabout

Step 11: Final tweaks Summary

7 Interactions, Collisions, and Pathfinding

Digital content creation applications

Trang 19

Common import settings for models

Setting up the hut model

Adding the model

Positioning the model

Manually adding the colliders

Physic Material

Adding audio

Collisions and triggers overview

Ray casting

Predictive collision detection

Opening the old man's hut door

Approach 1 – collision detection

Creating new assets

Character collision detection

Working with OnCollisionEnter Writing the OpenDoor() method

Declaring the function

Checking the door status

Playing an audio event

Testing the script

Extending colliders

Playing door animations through Animator

Reversing the procedure

Code maintainability

Drawbacks of collision detection

Approach 2 – ray casting

Disabling collision detection with comments

Refactoring the code – writing a Door Manager class Tidying PlayerCollisions

Casting the ray

Resetting the collider

Approach 3 – trigger collision detection

Creating and scaling the trigger zone

Scripting for trigger collisions

Removing the PlayerCollisions component

Trang 20

Placing additional models Unity Navigation System

The Bake tab The Agents tab The Object tab The Areas tab Area Types and Navigation cost Area mask

NPC interaction Triggering the dialogue Writing the DialogueManager class Tying up the logic and UI events Driving Animator Blend Tree with scripting Creating a basic UI for displaying the dialogue Creating the Canvas

Creating the start dialogue prompt Creating the dialogue window Creating the answer buttons Making enemy AI

Using Unity Standard Assets in our favor Making the AI smarter

Duplicate ThirdPersonCharacter class Creating the Advanced AI Controller class Custom AI state machine

Waypoints roaming Chasing the target Back to waypoints roaming Enemy's Field Of View (or line of sight) Player presence awareness

Fighting the player Modifying the chase method

Trang 21

Debugging the Nav Mesh Agent

A better look for our custom components with PropertyDrawers Further lectures and ideas

Tips for enhancing the AI Summary

9 Item Collection, Player Inventory, and HUD

Creating the ancient artifact piece prefabs

Downloading, importing, and placing Tagging the artifact piece

Collider scaling and rotation Enlarging the artifact piece Adding a trigger collider Collider scale and custom point light Creating the artifact piece collection script Making it spin

Adding trigger collision detection Saving as a prefab

Placing the artifact pieces

Player inventory

Saving the artifact collected piece count value Setting the variable start value

Audio feedback Adding the PiecePickup() method Adding the inventory to the player Restricting hidden piece spot access Restricting dialog access with a piece counter Displaying the game progression status HUD

Import settings for UI images Creating the HUD panel and background UI image Scripting for UI image activation

Understanding arrays Adding QuestIndicator images Draw order of elements Disabling the HUD for game start Enabling the HUD

Hints for the player

Writing on screen with UI Text Scripting for UI Text control Adjusting hints to show progress Summary

Trang 22

10 Instantiation and Rigidbodies

Implementing instantiation

Physics Forces The Rigidbody component Designing the gameplay

Creating the heavy stone prefab Adding physics to the stone prefab Saving as a prefab

Throwing stones at guards

The StoneLauncher component Checking for player input Writing the Fight method Instantiating the heavy stone Naming instances

Assigning velocity Adding development safeguards Checking component presence Safeguarding collisions Using the IgnoreCollision() method Ignoring collisions with layers Final tweaks

Instantiation restriction and object tidying Implementing stone throw animation

Activating the stone launch at the right frame Removing stones in a smart way

Finishing touches

Ragdoll physics simulation Scripting the ragdoll simulation Reviving the enemy

Using coroutines to time game elements Collision detection

Punching the guards Playing stones collisions feedback sounds Adding force impulse to stones impacts Summary

11 Unity Particle System

What is a Particle System?

Creating the fireplace

Creating wall torches

Modifying the Fire Light component

Trang 23

Enhancing environment ambience

Making the village ground dusty Creating a sea breeze particle system

The Gradient Editor Creating a waterfall

Preparing textures for UI usage Creating the main menu scene

Adding the game title Manually anchoring the title to the Canvas Creating the main menu panel

Adding buttons Clone the MainMenu to obtain the Options menu Configuring UI buttons to show/hide menus with the OnClick() eve

nt method Creating an audio options menu Adding music volume control Adding general volume control Writing a listener script for UI slider elements User interaction

Creating a video options menu The power of UI dynamic variables and UI events Creating a drop-down menu

Yet another slider controller Loading the game

Final touches

Lights and shadows Adding a Rim light Real-time shadows Post-processing image effects FSAA (Full Screen Anti-Aliasing) Bloom and HDR

Screen overlay Vignette and chromatic aberration Splitting the render on two different cameras

Trang 24

Adding jail bars to the scene Conclusion

Testing screen sizes Further looks

Summary

13 Optimization and Final Touches

Tweaking the terrain

Using SpeedTree Hills, troughs, rocks, and texture blending Smoothing and painting

Keep on the right path by drawing path details with splat maps Some level design: placing the guards

Unity lighting

Scene setup The Enviroment settings Realtime lighting and Mixed Lighting Realtime only versus Baked only versus Mixed lighting Lightmaps and baked Global Illumination

Baking the scene Preparing for lighting Including or excluding lights from the baking Excluding GameObjects from the bake

Baking the scene Lightmapping Settings Global maps

Object maps Other settings Optimizing performance

Camera clip planes (frustum culling) Standard fog versus Global Fog post effect Occlusion culling

The Object tab The Bake tab The Visualization tab Wrapping it all up

Rendering paths Graphics pipelines Forward Rendering Deferred Rendering Lighting performance Should I use Deferred?

Physical-Based Rendering: Unity Standard Shader

Trang 25

Image effects Hardware-based anti-aliasing (MSAA) versus shader-based anti-ali asing(FSAA)

Depth of field Debugging depth of field Crepuscular sun rays through Sun Shafts effect The Post Processing Stack

Post Processing Stack V2 and Utilities Focus puller

Advanced rendering features

Level of Detail (LOD) High Dynamic Range Asynchronous Texture Upload Graphic Command buffers Unity Engine automated optimizations

Static and dynamic batching Static batching

Dynamic batching GPU instancing Cull and cull more!

Camera culling distance Modifying the FireLight class Further optimizations

Physics optimizations Writing the DeactivateRagdollTimer class Changing the HeavyStone class

Exercise proposal: a rough save game-status feature Optimizing AI impact on the CPU

Setting up AI Trigger areas Other ideas

Cross-platform general settings Per-platform player settings Mac - PC - Linux - standalone build

Trang 26

Resolution and Presentation

User input bindings Icon

Splash image

Splash screen Logos

Background Other settings

Rendering Configuration and optimization Logging

Quality settings - Rendering

Quality settings - Shadows

Quality settings – Other

Building the game

Building for the web

Adapting and building for the mobile platform Adapting for Android

Texture Compression formats

Building for Android

Choosing the preferred build system Publishing settings

Building for iOS

Testing and debugging

Debugging with Visual Studio 2017

Testing and profiling with Unity Editor

Unity Profiler

The Physics Debug window

Trang 27

The Frame Debug window Sharing your work

Sharing WebGL builds

Publishing on mobile stores

Publishing for the desktop

Digital Content Creation tools

Future of Unity and MonoBehaviour

Testing and further study

Learn by doing

Testing and finalizing

Public alpha testing and open beta

Frame rate feedback

Testing different video resolutions Optimizing more

Other Books You May Enjoy

Leave a review - let other readers know what you think

Trang 28

Game engines such as Unity are the power tools behind the games we knowand love Unity is one of the most widely used and best loved packages forgame development and is used by everyone, from hobbyists to large studios,

to create games and interactive experiences for the web, desktops, mobiles,and consoles With Unity's intuitive, easy-to-learn toolset and this book, it'snever been easier to become a game developer

Taking a very practical approach, this book will introduce you to the concepts

of developing 2D and 3D games before getting to grips with development inUnity itself, prototyping a simple 2D scenario, and then creating a larger 3Dgame From creating 3D worlds to scripting and creating game mechanics,you will learn everything you'll need to get started with game development

This book is designed to cover a set of easy-to-follow examples, whichculminate in the production of a Third Person 3D game, complete with aninteractive island environment, dialogues, puzzles, and AI-driven enemies tofight All the concepts taught in this book are applicable to other types ofgame; however, by introducing the common concepts of game and 3Dproduction, you'll explore Unity to make a character interact with the gameworld, with NPCs, and with enemies, and build puzzles for the player tosolve in order to complete a game level At the end of the book, you will have

a fully-working 3D game and all the skills required to extend the gamefurther, giving your end user, the player, the best possible experience through

a series of optimization and performance-tweaking solutions; soon, you will

be creating your own 3D games and interactive experiences with ease!

Trang 29

Who this book is for

This book is intended for beginners and intermediate users and gamedevelopers in general No previous Unity experience is needed, but somebasic knowledge about programming is required to get to grip with C#

Trang 30

What this book covers

Chapter 1, Entering the Third Dimension, introduces the key concepts that you

need to understand to complete the book However, 3D is a detaileddiscipline that you will continue to learn not only with Unity, but in otherareas as well We'll ensure that you're prepared by looking at some important3D concepts before moving on to discuss the concepts and interface of Unity.You will learn more about coordinates and vectors, physics simulation, andabout the Unity Editor basic user interface

Chapter 2, Prototyping and Scripting Basics, familiarizes you with the Unity

interface, working with GameObjects, components, and basic scripting Youwill also learn about creating a new project in Unity, and you will beintroduced to variables, functions, and commands

Chapter 3, Creating and Setting Game Assets, teaches how Unity 3D manages

2D projects, the orthogonal camera, lighting, how to implement parallaxscrolling backgrounds, and how to import animations from sprite sheets Youwill learn to modify and customize the FreeParallax component and also take

a first look at the Animator Controller

Chapter 4, Player Controller and Further Scripting, dives a bit deeper into

scripting, modifying existing classes, or creating your own It also takes alook at how the new Physics2D framework works with different types ofColliders 2D and Rigidbody 2D Also, you will become familiar with how tomodify C# classes for your needs, how collision and trigger detection work in2D, and will take a first look at Unity UI concepts You will be introduced tothe main features of the Inspector and take a Dot syntax and quick scriptingcourse

Chapter 5, Character Animation with Unity, looks into Unity's animation

system and Mecanim You will also see the difference between the RootMotion and non-Root Motion approach to avatar animations and discoverhow to set up both a basic and a complex state-machine to control the

Trang 31

character animation behavior, as well as how IK pass in a layer can allow us

to control a part of the skeleton through scripting You will be introduced tohow to modify the ThirdPersonCharacter setup from the Standard Assets tosuit our player controller

Chapter 6, Creating the Environment, assists with the basics of creating your

first environment Beginning with nothing but a flat plane, you will create acompletely explorable island in a short span of time You will also look atlighting and audio, two core principles that you'll apply in every kind of gameproject you encounter Specifically, you will be looking into using Audiocomponent to implement environmental ambient sounds

Chapter 7, Interactions, Collisions, and Pathfinding, focuses on how to detect

interactions between objects in 3D games with collision and raycasting Youwill learn how to use the basics of pathfinding and how to set up the levelyou are making to optimize the NavMesh with Unity's built-in NavigationSystem

Chapter 8, AI, NPC, and Further Scripting, teaches you to create a non-playing

character visual prefab and its Animator Controller and components, a simple

AI class for the NPC and the guards first, and an advanced AI class for theguards later on You will also be using Unity UI, triggers, and some scripting

to make the player interact with the NPC and implement a simple dialogue.Also, you will be setting up the Navigation System for NavMesh baking andwill test the navigation with character movements

Chapter 9, Item Collection, Player Inventory, and HUD, outlines creating a

game scenario Learn to display onscreen text with the UI Text componentand how to work with the UI Image component to make an HUD, and learnhow to manipulate game state based on tracked variables You will create anitem collection puzzle for the player

Chapter 10, Instantiation and Rigidbodies, looks at implementing Rigidbody

objects both for animated dynamic elements and instantiated projectiles Youwill be looking at how coroutines can be used to provide structure and addedfunctionality to your scripting By creating a simple fight system for

Trang 32

managing punching and launching stones, you will be introduced to setting

up a ragdoll simulation and scripting a ragdoll manager for reviving stunnedenemies

Chapter 11, Unity Particle System, discusses how to build some cool particle

effects and how to customize the particle system for our needs You will alsolearn about how multiple particle systems can play together, and how tocombine the same effect for different situations and learn to modify andadjust the FireLight component for moving around and changing thecolor/intensity of fire Point Lights

Chapter 12, Designing Menus with Unity UI, helps you create the main menu

scene from where the user will start the game or quit to windows You willlearn how to use animations on UI panels and how to catch mouse events andexecute procedures upon firing an event Also learn to create an in-game/pause menu feature with a World Space Canvas and also preparetexture images to work with the new Unity UI

Chapter 13, Optimization and Final Touches, explores how to operate further

optimization techniques and how to profile your game to find bottlenecks.You will look at standard Image Effects and be introduced to the new PostProcessing Stack You will add some cool bits and prepare everything for thefinal build

Chapter 14, Building and Sharing, showcases the supported platforms and how

to adapt your game for desktop, web, or mobile builds You will exploreUnity Player Settings and Build Settings and the main differences betweenthe various platforms, and learn how to share your work with others

Trang 33

To get the most out of this book

I assume that you are confident with modern programming; it's better if youhave some previous experience with C#, but it's not mandatory Decentknowledge of computer graphics in general and an interest in learning are amust We suggest you to install The Gimp for editing textures and sprites,and Blender for editing 3D models

Despite the difficulty they might have at start, they are very completepackages with nothing to envy of packages such as Photoshop or Maya Ofcourse, this is your call; if you are already a Photoshop guru or Maya expert,there is no need to tell you to keep using your favorite package!

Trang 34

Download the example code files

You can download the example code files for this book from your account at

www.packtpub.com If you purchased this book elsewhere, you can visit www.packtpu b.com/support and register to have the files emailed directly to you

You can download the code files by following these steps:

1 Log in or register at www.packtpub.com

2 Select the SUPPORT tab

3 Click on Code Downloads & Errata

4 Enter the name of the book in the Search box and follow the onscreeninstructions

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

WinRAR/7-Zip for Windows

Zipeg/iZip/UnRarX for Mac

7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/Pac ktPublishing/Unity-2017-Game-Development-Essentials-Third-Edition We also haveother code bundles from our rich catalog of books and videos available at http s://github.com/PacktPublishing/ Check them out!

Trang 35

Download the color images

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

Trang 36

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 Twitterhandles Here is an example: "And, finally, we will add a method function toour 2DPlatformerCustomUserControl, which our collectable2D class will call bysending a message to the player object to increase the score You can place itright after its Update() function."

A block of code is set as follows:

bool grounded = false;

Bold: Indicates a new term, an important word, or words that you see

onscreen For example, words in menus or dialog boxes appear in the textlike this Here is an example: "In Terrain Settings, for example, you canadjust the Base Map Dist in order to specify how far away a player must gobefore the terrain replaces high-resolution graphics for lower-resolution ones,making objects in the distance less expensive to render."

Warnings or important notes appear like this.

Tips and tricks appear like this.

Trang 37

Get in touch

Feedback from our readers is always welcome

General feedback: Email feedback@packtpub.com and mention the book title inthe subject of your message If you have questions about any aspect of thisbook, please email us at questions@packtpub.com

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, wewould be grateful if you would report this to us Please visit www.packtpub.com/su bmit-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 locationaddress or website name Please contact us at copyright@packtpub.com 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 abook, please visit authors.packtpub.com

Trang 38

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 seeand use your unbiased opinion to make purchase decisions, we at Packt canunderstand what you think about our products, and our authors can see yourfeedback on their book Thank you!

For more information about Packt, please visit packtpub.com

Trang 39

Entering the Third Dimension

Before getting started with any 3D package, it is crucial to understand theenvironment you'll be working in

As Unity was born as a 3D engine and development tool, many conceptsthroughout this book will assume a certain level of understanding of 3Ddevelopment in general, as well as game engines It is crucial that you equipyourself with at least a basic knowledge of these concepts before diving intothe practical elements of the rest of this book

In this chapter, we'll make sure you're prepared by looking at some important3D concepts, before moving on to discuss the concepts and interface of Unityitself You will learn about the following topics:

Coordinates and vectors

Polygons, edges, vertices, and meshes

Shaders, materials, and textures

Rigidbody physics simulation and collision detection

Introduction to Sprites and the new 2D and User Interface (UI) systems

game objects and scripted or built-in components

Assets and scenes, the Project view

Unity Editor UI

Trang 40

Getting to grips with 3D

Let's take a look at the crucial elements of the 3D world, and how Unity letsyou develop games in three dimensions

Ngày đăng: 15/09/2020, 11:38

TỪ KHÓA LIÊN QUAN