Preface
	Chapter 1: Virtuall Eve th'm for Eve one
	What is virtual reality to you?
	Types of head-mounted displays
	Desktop VR
	Mobile VR
	The difference between virtual reality and augmented reality
	Applications versus games
	What this book covers
	Who are you?
	Types of VR experiences
	Technical skills that are important to VR
	Summary
	
	Chapter 2: Objects and Scale
	Getting started with Unity
	Starting a new Unity project
	The Unity editor
	The default world space
	Creating a simple diorama
	Adding a cube
	Adding a plane
	Adding a sphere and some material
	Changing the scene view
	Adding a photo
	Coloring the ground plane
	Measurement tools
	Keeping a unit cube handy
	Using a Grid Projector
	Measuring the Ethan character
	Importing from the Blender experiment
	An introduction to Blender
	A unit cube
	A UV Texture image
	Importing into Unity
	A few observations
	Summary
	
	Chapter 3: VR Build and Run
	VR device integration software
	Unity's built-in VR support
	The device-specific SDK
	The OSVR project
	WebVR
	3D worlds
	Creating the MeMyselfEye prefab
	Build for the Oculus Rift
	Build for Google Cardboard
	The Android setup
	The iOS setup
	Installing the Cardboard Unity package
	Adding the camera
	The build settings
	The Play Mode
	Building and running in Android
	Building and running in iOS
	The device-independent clicker
	How virtual reality really works
	Stereoscopic 3D viewing
	Head tracking
	Summary
	
	Chapter 4: Gaze-based Control
	Ethan, the walker
	Artificially intelligent Ethan
	The Navmesh bakery
	A random walker in the town
	Interlude - a quick introduction to Unity programming
	The RandomPosition script
	"Zombie-ize" Ethan!
	Go where I'm looking
	The LookMoveTo script
	Adding a feedback cursor
	Observations
	If looks could kill
	The KillTarget script
	Adding particle effects
	Cleaning up
	Summary
	
	Chapter 5: World Space UI
	A reusable default canvas
	The visor HUD
	The reticle cursor
	The windshield HUD
	The game element UI
	The info bubble
	An in-game dashboard with input events
	Creating a dashboard with buttons
	Linking the water hose to the buttons
	Activating buttons from the script
	Look to highlight a button
	Looking and then clicking to select
	Looking and staring to select
	A responsive object UI with head gestures
	Using the head position
	Using head gestures
	Summary
	
	Chapter 6: First-person Character
	Understanding the Unity characters
	Unity components
	The Camera component
	The Rigidbody component
	The Character Controller component
	Unity Standard Assets
	ThirdPersonController
	AIThirdPersonController
	FirstPersonController
	RigidBodyFPSController
	Making a first person
	Move in the direction you're looking
	Keep your feet on the ground
	Don't pass through solid objects
	Don't fall off the edge of the world
	Stepping over small objects and handling uneven terrain
	Start and stop moving
	Using head gestures to start/stop
	User calibrations
	A character's height
	Real-life height of a player
	Recentering
	Maintaining a sense of self
	Head-body disconnect
	Head and body...
	...And feet
	The body avatar
	Virtual David le nose
	Audio cues
	Locomotion, teleportation, and sensors
	Managing VR motion sickness
	Summary
	
	Chapter 7: Physics and the Environment
	Unity physics
	Bouncy balls
	Headshots
	Trampoline and brick
	A human trampoline
	Like a brick
	Like a character
	Interlude - environment and things
	Wispy Sky
	The planet Earth
	The corporate logo
	Blender
	Unity
	An elevator
	Jumping
	Summary
	
	Chapter 8: Walk-throughs and Rendering
	Building in Blender
	Walls
	Ceiling
	Assemble the scene in Unity
	The gallery room
	The artwork rig
	The exhibition plan
	Adding photos to the gallery
	An animated walk-through
	Unity's animation system
	Scripted animation
	Optimizing for performance and comfort
	Optimizing your implementation and content
	Simplify your models
	Using texture maps instead of complex meshes
	Limiting the objects to be drawn
	Lighting and shadow performance
	Optimizing your scripts
	Optimizing for the Unity rendering pipeline
	Life's a batch
	Multipass pixel filling
	Other rendering tips
	Optimizing for the target hardware and drivers
	Unity Profiler
	Summary
	
	Chapter 9: Using All 360 Degrees
	360-degree media
	Crystal balls
	Magic orbs
	Panoramas
	Infographics
	Equirectangular projections
	Globes
	Photospheres
	Field of view- FOV
	Capturing a 360-degree media
	Summary
	
	Chapter 10: Social VR Metaverse
	Multiplayer networking
	Networking services
	The network architecture
	Local versus server
	The Unity networking system
	Setting up a simple scene
	Creating a scene environment
	Creating an avatar head
	Adding multiplayer networking
	Network Manager and HUD
	Network Identity and Transform
	Running as a host
	Adding spawn positions
	Running two instances of the game
	Associating avatar with the first-person character
	Adding multiplayer virtual reality
	The Oculus Rift players
	The Google Cardboard players
	Next steps
	Building and sharing a custom VRChat room
	Preparing and building the world
	Host the world
	Summary
	
	Chapter 11: What's Next?
	Index