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 – moving the Rigidbody component

Use the following steps to move and rotate the Rigidbody component:

  1. Add in the following code to PlayerBehavior underneath the Update method, and then save the file:
// 1
void FixedUpdate()
// 2
Vector3 rotation = Vector3.up * hInput;

// 3
Quaternion angleRot = Quaternion.Euler(rotation *

// 4
_rb.MovePosition(this.transform.position +
this.transform.forward * vInput * Time.fixedDeltaTime);

// 5
_rb.MoveRotation(_rb.rotation * angleRot);

Here's a breakdown of the preceding code:

  1. Any physics- or Rigidbody-related code always goes inside FixedUpdate, rather than Update or the other MonoBehavior methods:
    • FixedUpdate is frame rate independent and is used for all physics code. 
  2. Creates a new Vector3 variable to store our left and right rotation:
    • Vector3.up * hInput is the same rotation vector we used with the Rotate method in the previous example.
  1. Quaternion...