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 – player locomotion

Before you get the player moving, you'll need to attach a script to the player capsule:

  1. Create a new C# script in the Scripts folder, name it PlayerBehavior, and drag it into the Player capsule.
  2. Add the following code and save:
 public class PlayerBehavior : MonoBehaviour 
{
// 1
public float moveSpeed = 10f;
public float rotateSpeed = 75f;

// 2
private float vInput;
private float hInput;


void Update()
{
// 3
vInput = Input.GetAxis("Vertical") * moveSpeed;

// 4
hInput = Input.GetAxis("Horizontal") * rotateSpeed;


// 5
this.transform.Translate(Vector3.forward * vInput *
Time.deltaTime
);

// 6
this.transform.Rotate(Vector3.up * hInput * Time.deltaTime);
}
}
Using the this keyword is optional. Visual Studio 2019 may suggest that you remove it to simplify the code, but I prefer leaving it in for clarity.
When...