Book Image

Learning C# by Developing Games with Unity 2020 - Fifth Edition

By : Harrison Ferrone
Book Image

Learning C# by Developing Games with Unity 2020 - Fifth Edition

By: Harrison Ferrone

Overview of this book

Over the years, the Learning C# by Developing Games with Unity series has established itself as a popular choice for getting up to speed with C#, a powerful and versatile programming language that can be applied in a wide array of application areas. This book presents a clear path for learning C# programming from the ground up without complex jargon or unclear programming logic, all while building a simple game with Unity. This fifth edition has been updated to introduce modern C# features with the latest version of the Unity game engine, and a new chapter has been added on intermediate collection types. Starting with the basics of software programming and the C# language, you’ll learn the core concepts of programming in C#, including variables, classes, and object-oriented programming. Once you’ve got to grips with C# programming, you’ll enter the world of Unity game development and discover how you can create C# scripts for simple game mechanics. Throughout the book, you’ll gain hands-on experience with programming best practices to help you take your Unity and C# skills to the next level. By the end of this book, you’ll be able to leverage the C# language to build your own real-world Unity game development projects.
Table of Contents (16 chapters)

Time for action  overloading the level restart

Let's add an overloaded version of RestartLevel():

  1. Open up Utilities and add the following code:
 public static class Utilities 
{
public static int playerDeaths = 0;

public static void RestartLevel()
{
SceneManager.LoadScene(0);
Time.timeScale = 1.0f;
}

// 1
public static bool RestartLevel(int sceneIndex)
{
// 2
SceneManager.LoadScene(sceneIndex);
Time.timeScale = 1.0f;

// 3
return true;
}
}
  1. Open GameBehavior and update one of the calls to Utilities.RestartLevel() in the OnGUI() method to the following:
if (showWinScreen)
{
if (GUI.Button(new Rect(Screen.width/2 - 100,
Screen.height/2 - 50, 200, 100), "YOU WON!"))
{
// 4
Utilities.RestartLevel(0);
}
}

Let's break down the code:

  1. First, it declares an overloaded version of the RestartLevel() method that takes in an int parameter and returns...