![]()
Unity 5 for Android Essentials
Table of Contents
Unity 5 for Android Essentials
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
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
Errata
Piracy
Questions
1. Setting Up and Configuring an Android Platform
Configuring Unity 5 for Android devices
APK expansion files in Unity 5
Overview
Formats
The updating process
Setting up expansion files in Unity 5
Building for Android devices
Unity License Comparison Overview
NavMeshes, pathfinding, and crowd simulation
Level of Detail (LOD) support
Audio filters
Video playback and streaming
Full-fledged streaming with asset bundles
Hundred thousand dollar turnover
Mecanim – IK Rigs
Mecanim – sync layers and additional curves
Custom splash screen
Build size stripping
Lightmapping with global illumination and area lights
HDR and tone mapping
Occlusion culling
Light probes
Static batching
Render-to-texture effects
Fullscreen postprocessing effects
NavMesh – dynamic obstacles and priority
.NET socket support
Profiler and GPU profiling
Real-time directional shadows
Script access to asset pipeline
Summary
2. Accessing Android Functionality
Creating Java and native C plugins for an Android platform
Creating plugins in C
Creating plugins in Java (Eclipse IDE)
Writing Java code in plugin
Turning on and off a hardware flashlight
On Unity side
Exporting and importing a JAR library from Eclipse into Unity
Importing AndroidManifest
Using Java plugins in Unity scripts
Anti-piracy check
Vibration
Activity Indicator
Screen orientation
System information
Accessing the Android sensors and features within Unity 5
Acceleration
Gyroscope
Compass
Summary
3. High-end Graphics for Android Devices
Physically-based shaders
Basic shader concepts
The vertex shader
The geometry shader
The pixel/fragment shader
Shading languages
Cg
Unity shaders in Cg
A custom diffuse lighting model
A basic reflection environment
Masked texture reflection
Lighting model techniques
The Lit sphere model
Realistic rendering
Global illumination
Practicing in shader optimization
Best case practice
Summary
4. Animation, Audio, Physics, and Particle Systems in Unity 5
New Mecanim animation features in Unity 5
State machine behavior
State machine transition
Asset creation API
Direct blend tree
Programmatically creating assets by Unity 5 API
Creating the controller
Adding parameters
Adding state machines
Adding states
Adding transitions
Going deeper into new audio features
Mood transitions
Physics and particle system effects in Unity 5
Particle system performance tips and tricks
Legacy versus Shuriken Unity's built-in particle systems
Particle system tips
Summary
5. Asset Bundles in Unity 5 Pro
An overview of the asset bundles in Unity 5
Downloading new code and data in real time for Android devices
Managing loaded asset bundles
Asset bundles and binary data
Asset bundles and scripts
Asset bundle dependencies
Safeness techniques in practice
Summary
6. Optimization and Transformation Techniques
Occlusion culling and level of detail in optimization techniques
Optimizing by LOD
Unity C# and Unity JS optimization tips and tricks
Transforming Unity C# code into Unity JavaScript code and vice versa
JavaScript variables and types
C# variables and types
Converting types in Unity JS
Converting types in Unity C#
Unity JS function versus Unity C# function
Unity JS return versus Unity C# return
Unity JS yielding versus Unity C# yielding
Unity JS directives versus Unity C# directives
Summary
7. Troubleshooting and Best Practices
Measuring performance with the built-in Android profiler
General CPU activity
Rendering statistics
Detailed Unity player statistics
Detailed script statistics
Detailed statistics on memory allocated by scripts
Debugging Android devices with the Unity profiler tool
Profiler timeline
The CPU area
The Rendering area
The Memory area
The simple view
The detailed view
The audio area
The physics area
The GPU area
Real-practice techniques
The high-speed, off-screen particles technique in Unity
The pool technique
The scriptable profiler tool
Unity profiler tricks
Creating a simple profiler
Summary
Index
![]()
Unity 5 for Android Essentials
Copyright © 2015 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, and its dealers and distributors will be held liable for any damages caused or alleged to be 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.
First published: August 2015
Production reference: 1310715
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78439-919-1
www.packtpub.com
![]()
Author
Valera Cogut
Reviewers
Todd Bello
Robbyn Blumenschein
Ali Raza
Joe Whitehouse
Commissioning Editor
Amarabha Banerjee
Acquisition Editor
Vinay Argekar
Content Development Editor
Samantha Gonsalves
Technical Editor
Faisal Siddiqui
Copy Editor
Charlotte Carneiro
Project Coordinator
Kinjal Bari
Proofreader
Safis Editing
Indexer
Tejal Soni
Production Coordinator
Aparna Bhagat
Cover Work
Aparna Bhagat
![]()
Valera Cogut is an independent professional software and video game developer who has worked in the game industry since 2008 and has more than 12 years of programming experience. He is a passionate software and game developer with different areas of expertise. Before diving into the game industry 6 years ago, Valera created websites and applications with PHP, the Yii framework, the Zend framework, Relational Database Management Systems, Apache and Nginx, C#, C++, C, Objective-C, Java, Python, UML, and many other technologies. Having a mathematical background (analytical geometry, linear algebra, logic, statistics and probability, differential equations, graph theory, and mathematical analysis), he finally realized that game development was his mission. Reusable designs, optimized algorithms, clean code, and elaborated workflows—these things make him happy.
Valera has had the opportunity to produce titles for multiple platforms, including Windows Phone, Android, iOS, PC, and Mac. Today, he continues to produce fun and original games, participate in game jams, and author books. He was a technical reviewer for Unity Android Game Development by Example Beginner's Guide, Packt Publishing.
Currently, Valera has a contract as a Unity3D C# developer for Kaufcom GmbH, a well-known games and apps producer from Switzerland http://www.kauf.com (Android games: https://play.google.com/store/search?q=kaufcom).