UID:
edocfu_9959235286102883
Format:
1 online resource (296 p.)
Edition:
1st edition
ISBN:
1-78588-845-5
Series Statement:
Community experience distilled
Content:
Master performance optimization for Unity3D applications with tips and techniques that cover every aspect of the Unity3D Engine About This Book Optimize CPU cycles, memory usage, and GPU throughput for any Unity3D application Master optimization techniques across all Unity Engine features including Scripting, Asset Management, Physics, Graphics Features, and Shaders A practical guide to exploring Unity Engine's many performance-enhancing methods Who This Book Is For This book is intended for intermediate and advanced Unity developers who have experience with most of Unity's feature-set, and who want to maximize the performance of their game. Familiarity with the C# language will be needed. What You Will Learn Use the Unity Profiler to find bottlenecks anywhere in our application, and discover how to resolve them Implement best-practices for C# scripting to avoid common pitfalls Develop a solid understanding of the rendering pipeline, and maximize its performance through reducing draw calls and avoiding fill rate bottlenecks Enhance shaders in a way that is accessible to most developers, optimizing them through subtle yet effective performance tweaks Keep our scenes as dynamic as possible by making the most of the Physics engine Organize, filter, and compress our art assets to maximize performance while maintaining high quality Pull back the veil on the Mono Framework and the C# Language to implement low-level enhancements that maximize memory usage and avoid garbage collection Get to know the best practices for project organization to save time through an improved workflow In Detail Competition within the gaming industry has become significantly fiercer in recent years with the adoption of game development frameworks such as Unity3D. Through its massive feature-set and ease-of-use, Unity helps put some of the best processing and rendering technology in the hands of hobbyists and professionals alike. This has led to an enormous explosion of talent, which has made it critical to ensure our games stand out from the crowd through a high level of quality. A good user experience is essential to create a solid product that our users will enjoy for many years to come. Nothing turns gamers away from a game faster than a poor user-experience. Input latency, slow rendering, broken physics, stutters, freezes, and crashes are among a gamer's worst nightmares and it's up to us as game developers to ensure this never happens. High performance does not need t...
Note:
Includes index.
,
Cover; Copyright; Credits; About the Author; Acknowledgments; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Detecting Performance Issues; The Unity Profiler; Launching the Profiler; Editor or standalone instances; Editor profiling; The Unity Webplayer connection; Remote connection to an iOS device; Remote connection to an Android device; The Profiler window; Controls; Best approaches to performance analysis; Verifying script presence; Verifying script count; Minimizing ongoing code changes; Minimizing internal distractions; Minimizing external distractions
,
Targeted profiling of code segmentsProfiler script control; Custom CPU Profiling; Saving and loading Profiler data; Saving Profiler data; Loading Profiler data; Final thoughts on Profiling and Analysis; Understanding the Profiler; Reducing noise; Focusing on the issue; Summary; Chapter 2: Scripting Strategies; Cache Component references; Obtaining Components using the fastest method; Removing empty callback declarations; Avoiding the Find() and SendMessage() methods at runtime; Static classes; Singleton Components; Assigning references to pre-existing objects; A global messaging system
,
A globally accessible objectRegistration; Message processing; Implementing the messaging system; Message queuing and processing; Implementing a custom message; Message registration; Message sending; Message cleanup; Wrapping up the messaging system; Disabling unused scripts and objects; Disabling objects by visibility; Disabling objects by distance; Consider using distance-squared over distance; Avoid retrieving string properties from GameObjects; Update, coroutines, and InvokeRepeating; Consider caching Transform changes; Faster GameObject null reference checks; Summary
,
Chapter 3: The Benefits of BatchingDraw Calls; Materials and Shaders; Dynamic Batching; Vertex attributes; Uniform scaling; Dynamic Batching summary; Static Batching; The Static flag; Memory requirements; Material references; Static Batching caveats; Edit Mode debugging of Static Batching; Avoiding instantiating static meshes at runtime; Visibility and rendering; Static Batching summary; Summary; Chapter 4: Kickstart Your Art; Audio; Loading audio files; Profiling audio; Additional loading options; Encoding formats and quality levels; Audio performance enhancements
,
Minimize active Audio Source countMinimize Audio Clip references; Enable Force to Mono for 3D sounds; Resample to lower frequencies; Consider all encoding formats; Beware of streaming; Apply Filter effects through Mixer groups to reduce duplication; Use ""WWW.audioClip"" responsibly; Consider Audio Module files for background music; Texture files; Compression formats; Texture performance enhancements; Reduce Texture file size; Use Mip Maps wisely; Manage resolution downscaling externally; Adjust Anisotropic Filtering levels; Consider Atlasing
,
Adjust compression rates for non-square Textures
,
English
Additional Edition:
ISBN 1-78588-458-1
Language:
English
Bookmarklink