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

Game behavior

This is attached to an empty GameObject in the scene, as follows:

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

public class GameBehavior : MonoBehaviour, IManager
{
public string labelText = "Collect all 4 items and win your freedom!";
public readonly int maxItems = 4;
public bool showWinScreen = false;
public bool showLossScreen = false;

public delegate void DebugDelegate(string newText);
public DebugDelegate debug = Print;

private string _state;
public string State
{
get { return _state; }
set { _state = value; }
}

private int _itemsCollected = 0;
public int Items
{
get { return _itemsCollected; }
set {
_itemsCollected = value;

if (_itemsCollected >= maxItems)
{
labelText = "You've found all the items!";
showWinScreen...