Book Image

Learning C# by Developing Games with Unity 2019 - Fourth Edition

By : Harrison Ferrone
Book Image

Learning C# by Developing Games with Unity 2019 - Fourth Edition

By: Harrison Ferrone

Overview of this book

Learning to program in today’s technical landscape can be a daunting task, especially when faced with the sheer number of languages you have to choose from. Luckily, Learning C# with Unity 2019 removes the guesswork and starts you off on the path to becoming a confident, and competent, programmer using game development with Unity. You’ll start off small by learning the building blocks of programming, from variables, methods, and conditional statements to classes and object-oriented systems. After you have the basics under your belt you’ll explore the Unity interface, creating C# scripts, and translating your newfound knowledge into simple game mechanics. Throughout this journey, you’ll get hands-on experience with programming best practices and macro-level topics such as manager classes and flexible application architecture. By the end of the book, you’ll be familiar with intermediate C# topics like generics, delegates, and events, setting you up to take on projects of your own.
Table of Contents (20 chapters)
Free Chapter
1
Section 1: Programming Foundations and C#
7
Section 2: Scripting Game Mechanics in Unity
12
Section 3: Leveling Up Your C# Code

Utilities

Demonstrates the uses of a static class, as follows:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public static class Utilities
{
public static int playerDeaths = 0;

public static string UpdateDeathCount(out int countReference)
{
countReference = 1;
return "Next time you'll be at number " + countReference;
}

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

Debug.Log("Player deaths: " + playerDeaths);
string message = UpdateDeathCount(out playerDeaths);
Debug.Log("Player deaths: " + playerDeaths);
}

public static bool RestartLevel(int sceneIndex)
{
if(sceneIndex < 0)
{
throw new System.ArgumentException("Scene index cannot be negative");
}

SceneManager.LoadScene(sceneIndex);
Time.timeScale = 1...