𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Mastering Unity: A Beginner's Guide

✍ Scribed by Sufyan bin Uzayr


Publisher
CRC Press
Year
2022
Tongue
English
Leaves
280
Series
Mastering Computer Science
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Mastering Unity: A Beginner's Guide introduces developers of all ages to the beautiful and valuable world of Unity.

Unity is a popular cross-platform game engine. It was initially unveiled and distributed as a Mac OS X-exclusive game engine in June 2005 at Apple Inc.'s Worldwide Developers Conference. Unity is used to produce nearly 50% of all games in the world. Its real-time platform, driven by tools and services, provides fantastic opportunities for game developers and innovators across sectors and applications.

Mastering Unity covers the creation of both three-dimensional (3D) and two-dimensional (2D) games as well as interactive simulations and other experiences. Since Unity is an engine used in sectors other than video games, including film, automotive, architectural, engineering, manufacturing, and is even used by the armed forces, Mastering Unity focuses on a broader usage for Unity.

This book starts with the setup and installation of Unity, which is followed by additional info related to its usage. Mastering Unity covers such topics as scene management, debugging, 2D and 3D physics, and Unity Hub setup.

Considering that C# is often the primary programming language used in Unity, this book covers object-oriented principles as well as C# coding at great length. That said, you can use any other language in Unity, including JavaScript, Rust, or Mono. For the most part, Mastering Unity strives to be programming language-neutral to help you fully understand the Unity concepts.

If you are an absolute beginner, Mastering Unity will help you understand the basics about Unity, its features, technical requirements, architecture, and the scripting language used in Unity. This book also focuses on setting up Unity, which encompasses installation, project creation, and launches of a project scene. Mastering Unity also addresses dealing with scenes and game objects, prefabs, storing scenes, animations in Unity, and performance optimization.

Mastering Unity will also help you learn how to test and release a game in Unity to various platforms.

Learn more about our other Mastering titles at:

https: //www.routledge.com/Mastering-Computer-Science/book-series/MCS

✦ Table of Contents


Cover
Half Title
Series Page
Title Page
Copyright Page
Contents
About the Editor
CHAPTER 1: Introduction to Unity
WHAT EXACTLY IS THE UNITY IDE?
What Is the Language Used by Unity?
What Is Unity 3D, and How Is It Used?
Other Game Engines vs. Unity
Unity 3D Game Development
All Gaming Solutions under One Roof
NINE SIGNIFICANT BENEFITS OF UNITY 3D GAME DEVELOPMENT
Options for Licensing
Overall Views
System Requirements for Unity Editor
System Requirements for Unity Player
ARCHITECTURE OF UNITY
.NET Overview in Unity
Backend Scripting
Directed Code Stripping
Collection of Garbage
System Libraries for .NET
Making Use of Third-Party .NET Libraries
Overhead Reflection in C#
UnityEngine.Object Unique Behavior
UnityEngine Objects Are Shared by Unity C# and Unity C++
Avoid the Use of Async and Await
Reloading Code in the Unity Editor
Serialization of Scripts
Script Compilation
WHICH OF THE SEVEN UNITY GAME DEVELOPMENT LANGUAGES SHOULD WE LEARN?
C# Is the Best Option
JavaScript Is the Current Alternative
The Traditional Third Option: Boo
IronPython Is an Unusual Choice
Lua Is an Intriguing Option
C/C++ Is the Best Language for Plugins
Rust Is a New Programming Language for Plugins
Ten Benefits of the C# Programming Language for Unity Developers
CHAPTER 2: Setting Up Unity
INSTALLATION AND CONFIGURATION
System Requirements for Unity Hub
CREATING A UNITY ACCOUNT
DEVELOPING YOUR FIRST PROJECT
HOW DOES UNITY WORK?
CREATING SPRITES IN UNITY
CHANGING SPRITES IN UNITY
TRANSFORMS AND OBJECT PARENTING IN UNITY
WHAT EXACTLY IS OBJECT PARENTING?
UNITY INTERNAL ASSETS
SCENE SAVING AND LOADING IN UNITY
OUR VERY FIRST SCRIPT
BASIC MOVEMENT SCRIPTING IN UNITY
UNDERSTANDING COLLISIONS IN UNITY
RIGIDBODIES AND PHYSICS IN UNITY
CUSTOM COLLISION BOUNDARIES IN UNITY
UNDERSTANDING PREFABS AND INSTANTIATION IN UNITY
DESTRUCTION OF GAMEOBJECTS IN UNITY
COROUTINES IN UNITY
THE CONSOLE IN UNITY
INTRODUCTION TO AUDIO IN UNITY
Components of Audio
Making a Noise
STARTING WITH THE UI IN UNITY
THE BUTTON OF UNITY
TEXT ELEMENT IN UNITY
THE SLIDER IN UNITY
MATERIALS AND SHADERS IN UNITY
What Exactly Is a Material?
What Exactly Is a Shader?
THE PARTICLE SYSTEM IN UNITY
USING THE ASSET STORE IN UNITY
CHAPTER 3: Working with Scenes and GameObjects
WHAT ARE SCENES?
Scene Creation, Loading, and Saving
Multi-Scene Editing
Baking Lightmaps across Multiple Scenes
Baking Navmesh Data with a Variety of Scenes
Baking Data for Occlusion Culling with Several Scenes
Play Mode
Scene-Specific Settings
Scripting
Scene Templates
Creating Scene Templates
Modifying Scene Templates
Customizing the Creation of New Scenes
The Sequence of Scene Template Instantiation
Settings for the Scene Template
New Scene Settings
Types Settings by Default
WHAT ARE GAMEOBJECTS?
Specifications
Transforms
The Component of Transform
Properties
Transform Editing
Parenting
Non-Uniform Scaling Limitations
Scale’s Importance
Working with Transforms: Some Pointers
Components Are Introduced
Configurations of Common Components
Component Transformation
Components of the Main Camera GameObject
Making Use of Components
Adding Components
Components Editing
Commands from the Component Context Menu
Property Experimentation
Objects That Are Primitive or Placeholders
Cube
Sphere
Capsule
Cylinder
Plane
Quad
Primitive 2D GameObjects
Sprite and Pixels-per-Unit by Default
Square
Circle
Capsule
Isometric Diamond
Flat-Top Hexagon
Point-Top Hexagon
Nine-Sliced
Scripting Is Used to Create Components
Deactivating GameObjects
Deactivating a Parent GameObject
Tags
New Tags Creation
Using a Tag
GameObjects That Remain Static
The Property Static Editor Flags
Keeping Our Work Safe
The Scene Changes
Project-Wide Modifications
Immediate Saving
PREFABS
Prefabs Creation
Making Prefabricated Assets
Prefab Instance Creation
Replacement of Existing Prefabs
Prefab Editing in Prefab Mode
Prefab Mode Entry and Exit
Isolation Editing
Contextual Editing
Save Automatically
Changing from Isolation to Context Mode
Undo
Environment for Editing
Overrides for Instances
Overrides Are Given Precedence
The Alignment Is Unique to the Prefab Instance
Changing a Prefab’s Occurrences
Dropdown Overrides
Menus in Context
Prefabs That Are Nested
In Prefab Mode, Add a Nested Prefab
Prefabs Can Be Nested Using Their Instances
Prefabs That Are Nested
In Prefab Mode, Add a Nested Prefab
Prefabs Can Be Nested Using Their Instances
Prefab Variations
Developing a Prefab Variant
Prefab Variant Editing
Multiple Layers of Override
Apply Target Selection
Prefab Instance Unpacking
Unity3D Fundamentalsβ€”A Quick Look at Game Physics
Physics
Object-Oriented Projects with Built-In Physics Engines
For Object-Oriented Tasks, Use 3D Physics
2D Physics Reference
CHAPTER 4: Animation in Unity
OVERVIEW OF THE ANIMATION SYSTEM
WORKFLOW FOR ANIMATION
SYSTEM OF LEGACY ANIMATION
Clips of Animation
Externally Sourced Animation
Unity Was Used to Create and Edit the Animation
EXTERNALLY SOURCED ANIMATION
Importing Animation Files
Data from Imported Animation Files May Be Seen and Copied
AVATARS WITH HUMANOID
ADDING HUMANOID MOVEMENTS TO A MODEL
Overview
Avatar Setup
Configure the Avatar
Strategy Mapping
Changing the Pose
How to Make an Avatar Mask
ADDING NON-HUMANOID (GENERIC) ANIMATIONS TO A MODEL
Outline
Setting Up the Rig
How to Make an Avatar Mask
Model Import Settings Dialogue Box
THE MODEL TAB
Scene
Blend Shapes Importing
Visibility Importing
Cameras Importing
Light Import
Restrictions
THE RIG TAB
Types of Generic Animation
TAB AVATAR MAPPING
Avatar Data Saving and Reuse
Making Use of Avatar Masks
THE AVATAR MUSCLE AND SETTINGS TAB
Changes Being Previewed
Degree of Freedom Translate
THE WINDOW FOR AVATAR MASK
Choosing a Humanoid Body
Selection of a Transform
HUMAN TEMPLATE WINDOW
ANIMATION WINDOW INSTRUCTIONS
MAKING USE OF THE ANIMATION VIEW
Viewing Animations on a GameObject
The List of Animated Properties
Timeline of Animation
Timeline Mode in Dopesheet
Timeline Mode for Curves
Fitting Our Choice to the Window
Controls for Playback and Frame Navigation
Window Locking
MAKE A NEW ANIMATION CLIP
Including Another Animation Clip
How It All Works Together
ADDING ANIMATION TO A GAMEOBJECT
Keyframes Recording
Time Line
In Preview Mode, You May Create Keyframes
Making Keyframes by Manually
CONTROLLERS FOR ANIMATORS
UNITY’S NAVIGATION SYSTEM
Designing User Interfaces (UI)
Toolkit for UIs
The Unity UI Package
Immediate Mode Graphical UI
Choosing a UI System for our Project
Audio
CHAPTER 5: Scene Performance Optimization
APPLICATION PROGRAMMING INTERFACE (API) SUPPORT FOR GRAPHICS
DirectX
Shaders for the Surface
Geometry Shaders and Tessellation
Shaders Computed
Metal
Restrictions and Requirements
Metal Enabling
Metal API Validation
Core OpenGL
Activating OpenGL Core
OpenGL Specifications
Limitations of the macOS OpenGL Driver
Features of OpenGL Core
Command-Line Parameters for the OpenGL Core Profile
Native OpenGL ES Command-Line Parameters on Desktop
GRAPHICS PERFORMANCE OPTIMIZING
Find High-Impact Graphics
CPU Enhancement
OnDemandRendering CPU Optimization
GPU: Model Geometry Optimization
Lighting Efficiency
Forward Drawing of Lights
Texture Compression and Mipmaps on the GPU
Mipmaps for Textures
LOD and Cull Distances Per Layer
Shadows in Real Time
GPU: Guidelines for Creating High-Performance Shaders
A Simple Checklist to Help Us Improve Our Game’s Speed
Batching of Draw Calls
Material Preparation for Batching
Dynamic Batching
Dynamic Batching (Particle Systems, Line Renderers, Trail Renderers)
Batching That Is Static
Instancing of GPUs
Including Instancing in Our Materials
Displaying the Statistics Window
Statistics
Debugger for Frames
Making Use of Frame Debugger
The debugger of Remote Frames
Options for Render Target Display
Streaming of Mip Maps
To Begin With
Restrictions
Mipmap Streaming Troubleshooting
CHAPTER 6: Completing the Game
DEBUGGING C# CODE IN UNITY
Setting up the Code Editor
Choosing an External Script Editor in Unity
Editor Debugging
The Code Optimization Option in Unity Offers Two Options
Attaching to the Editor and Setting Breakpoints
In-Player Debugging
Android and iOS Device Debugging
Using the Debugger to Troubleshoot
Make Certain That the Debugger Is Attached to the Right Unity Instance
Check Our Network Connection to the Unity Instance
Ascertain That the Device Only Has One Active Network Interface
Examine the Firewall Settings
Test to See if the Managed Debugging Information Is Available
Prevent the Device from Locking
TESTING OF UNITS
APPRAISAL
INDEX


πŸ“œ SIMILAR VOLUMES


Mastering Swift: A Beginner's Guide
✍ Sufyan bin Uzayr πŸ“‚ Library πŸ“… 2022 πŸ› CRC Press 🌐 English

<span><p>If you want to become an iOS developer, you have made an excellent choice with this book. Swift holds a significant position in the iOS industry because of the long list of features it serves. It is user-friendly, has great community support, and offers a greater extent of customization. As

Mastering GNOME: A Beginner's Guide
✍ Sufyan bin Uzayr πŸ“‚ Library πŸ“… 2022 πŸ› CRC Press 🌐 English

Mastering GNOME helps the reader master the GNOME desktop environment for a faster and more robust computing experience. The best thing about Linux is the plethora of choices that users tend to get. Whether it pertains to the kernel modules, or to the desktop environments, there is no shortage of

Mastering Flutter: A Beginner's Guide
✍ Sufyan bin Uzayr πŸ“‚ Library πŸ“… 2022 πŸ› CRC Press 🌐 English

Mastering Flutter helps the reader master the popular Flutter framework for rapid cross-platform app development. Mobile applications grow in popularity every year, and developers keep looking for new tools to help them design them. A Google-backed, free and open-source mobile user interface fram

Mastering GNOME: A Beginner’s Guide
✍ Sufyan bin Uzayr πŸ“‚ Library πŸ“… 2023 πŸ› CRC Press | Taylor & Francis Group 🌐 English

Mastering GNOME helps the reader master the GNOME desktop environment for a faster and more robust computing experience. The best thing about Linux is the plethora of choices that users tend to get. Whether it pertains to the kernel modules, or to the desktop environments, there is no shortage of op

Mastering Rust: A Beginner's Guide
✍ Sufyan bin Uzayr πŸ“‚ Library πŸ“… 2022 πŸ› CRC Press 🌐 English

Mastering Rust helps the reader master the powerful Rust programming language for creating stable and versatile applications and projects. Rust is a dependable and robust programming language that was created with today’s needs in mind, which is something that several other scripting languages la

Mastering KDE: A Beginner's Guide
✍ Sufyan bin Uzayr πŸ“‚ Library πŸ“… 2022 πŸ› CRC Press 🌐 English

<p><span>Mastering KDE</span><span> helps the reader master the KDE desktop environment for a faster and more robust computing experience.</span></p><p><span>The best thing about Linux is the plethora of choices that users tend to have. Whether it pertains to the kernel modules, or to the desktop en