Book Image

Unity 2020 Mobile Game Development - Second Edition

By : John P. Doran
Book Image

Unity 2020 Mobile Game Development - Second Edition

By: John P. Doran

Overview of this book

Unity 2020 brings a lot of new features that can be harnessed for building powerful games for popular mobile platforms. This updated second edition delves into Unity development, covering the new features of Unity, modern development practices, and augmented reality (AR) for creating an immersive mobile experience. The book takes a step-by-step approach to building an endless runner game using Unity to help you learn the concepts of mobile game development. This new edition also covers AR features and explains how to implement them using ARCore and ARKit with Unity. The book explores the new mobile notification package and helps you add notifications for your games. You’ll learn how to add touch gestures and design UI elements that can be used in both landscape and portrait modes at different resolutions. The book then covers the best ways to monetize your games using Unity Ads and in-app purchases before you learn how to integrate your game with various social networks. Next, using Unity’s analytics tools, you’ll enhance your game by gaining insights into how players like and use your game. Finally, you’ll take your games into the real world by implementing AR capabilities and publishing them on both Android and iOS app stores. By the end of this book, you will have learned Unity tools and techniques and be able to use them to build robust cross-platform mobile games.
Table of Contents (14 chapters)

Detecting touch on game objects

To add something else for our player to do, as well as to demonstrate some additional input functionality, we'll make it so that if the player taps an obstacle, it will be destroyed. We will use the following steps to modify our existing code to add this new functionality and utilize the concept of raycasts:

  1. In the PlayerBehaviour script, add the following new function:
/// <summary> 
/// Will determine if we are touching a game object and if so
/// call events for it
/// </summary>
/// <param name="touch">Our touch event</param>
private static void TouchObjects(Touch touch)
{
// Convert the position into a ray
Ray touchRay = Camera.main.ScreenPointToRay(touch.position);

RaycastHit hit;

// Create a LayerMask that will collide with all possible
// channels
int layerMask = ~0;

// Are we touching an object with a collider?
if (Physics.Raycast(touchRay, out hit, Mathf.Infinity,
layerMask, QueryTriggerInteraction...