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

Player behavior

This is attached to the Player object—it requires a Rigidbody and CapsuleCollider component, as follows:

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

public class PlayerBehavior : MonoBehaviour
{
public float moveSpeed = 10f;
public float rotateSpeed = 75f;
public float jumpVelocity = 5f;
public float distanceToGround = 0.1f;
public LayerMask groundLayer;
public GameObject bullet;
public float bulletSpeed = 100f;

public delegate void JumpingEvent(bool isGrounded);
public event JumpingEvent playerJump;

private float _vInput;
private float _hInput;
private Rigidbody _rb;
private CapsuleCollider _col;
private GameBehavior _gameManager;

void Start()
{
_rb = GetComponent<Rigidbody>();
_col = GetComponent<CapsuleCollider>();
_gameManager = GameObject.Find("Game Manager").GetComponent<GameBehavior>();
}

void Update()
...