Preface What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support Downloading the example code Downloading the color images of this book Errata Piracy Questions Welcome to the New World What exactly is the HoloLens? What you need to develop for the HoloLens Unity Visual Studio community HoloToolkit - Unity HoloLens emulator Visual Studio tools for Unity Other useful tools Installing the software Installing Visual Studio Unity HoloLens technical preview Visual Studio 2015 tools for Unity HoloLens emulator HoloToolkit-Unity Unity3d quick overview The main view Summary HoloWorld Hello World!, as its customary The layout of a HoloLens project Unity directory structure Saving the scene Objects and components Objects Components First project Our cubism period Adding a little color Material plane Creating the text Physics simulations Building the project in Unity Build settings Player settings Compiling our project Setting Up Visual Studio Using the HoloLens emulator Compilation time Summary I am in Control Prefabs Let's save the HelloWorld Parent/Child relationship Creating prefabs Installing the HoloToolkit User Input overview InputManager prefab New Camera prefab updated HoloToolkit Cursor Gaze Gesture Voice Animation A quick history Humble beginnings Time to move! It's easier than it seems Mecanim The Mecanim window Make them interactive Here is the Game Plan Our first script Materials, textures, and shaders Materials Search For It Adding the details Changing the color OnFocusEvent component Speech Input Source Time to build and test Summary User-Friendly Interface Reloading Unity C# scripting What is C#? A quick example Where to begin The breakdown of a Unity C# class Variables Access modifiers Class methods Understanding scope A lot to take in User interface design General user interface best practices Something new Microsoft HoloLens best practices The Unity camera and HoloLens Unity UI Overview Interactivity HoloLens UI A visible canvas Now it's time to build again Any object can be an interface object Summary Now That Is How It Should Sound Audio overview Here is what it is all about Unity audio components Audio Listener Audio Source Spatial sound and HoloLens Spatial sound Setting up Audio Sources Building a soundscape Finding sounds Importing our sounds into Unity Audio Source options Using our sounds Let's listen to our work Summary Not So Blank Spaces Spatial Mapping Let's get into this Importing the essentials Spatial Mapping in practice Spatial Mapping Observer Spatial Mapping Manager Object Surface Observer Our new Skeeball machine Application management Design patterns There can be only one Creating our application manager The ApplicationManager code Attaching our application manager and wiring it up So let it be written... so let it be done... The home stretch Code matters Let us enjoy our hard work Summary The Tools of the Trade Persistence Why are persistent holograms necessary? Coordinate systems World Anchors World Anchor system Some quick upkeep World Anchor code ApplicationManager changes A few more quick changes Seeking help The in-game debug window The prefab Let's wire this sucker up In-game menu Creating the menu items Setting up to code Time to code Summary Share What You Have Got Networking What is a network? Making the Skeeball game a shared experience Quick setup A very simple first step Too much information Spawning our Skeeball machine It's not really backtracking if it was the plan Application manager Enums Updating the Update() method Filling in the blanks The payoff Summary Putting It All Together Our main Prefab The organization system The reorganization Importing the RampColliders When bounding boxes collide Who wants to score? Think globally act locally Finishing the Prefab Ball Spawn Point SkeeSpawner Speed indicator GameBall Prefab Tags and Layers ThrowBall.cs Finishing touches Updating Placeskee ballMachine ApplicationManager Action makes sound Some quick house cleaning Replacing the main Prefab Summary Fixing Problems The Application Manager Seeing it all at once What does our Application Manager do? Debugging Bring the black flag Inspector Unity Property Attributes Unity Inspector Debug Mode Debug.Log/Console window Visual Studio Debugger Profiling and fixing performance HoloLens Developers Portal HoloToolkit FPS prefab Unity Profiler Visual Studio performance profiler Unity Frame Debugger Visual Studio Graphics Debugger Simplygon Summary