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)

Looping through key-value pairs

To capture a key-value pair in a local variable, we need to use the aptly-named KeyValuePair type, assigning both the key and value types to match the dictionary's corresponding types. Since KeyValuePair is its type, it acts just like any other element type, as a local variable.

For example, let's loop through the itemInventory dictionary we created earlier in the Dictionaries section and debug each key-value like a shop item description:

Dictionary<string, int> itemInventory = new Dictionary<string, int>()
{
{ "Potion", 5},
{ "Antidote", 7},
{ "Aspirin", 1}
};

foreach(KeyValuePair<string, int> kvp in itemInventory)
{
Debug.LogFormat("Item: {0} - {1}g", kvp.Key, kvp.Value);
}

We've specified a local variable of KeyValuePair, called kvp, which is a common naming convention in programming like calling the for loop initializer i, and set the key...