C# Script Tutorial – Complete Guide

Welcome to this comprehensive tutorial on C# scripting. Today, we delve into this powerful programming language and its practical applications, especially when creating games. Whether you’re a novice programmer or experienced coder, this tutorial offers you an engaging exploration of C# scripting, providing compelling reasons why this language is worth mastering.

What is C# Script?

C# is a versatile, object-oriented programming language developed by Microsoft. By combining the robustness of C++ with the simplicity of Visual Basic, C# has become a favorite for both beginners and experts, and is particularly popular in game development, thanks to its deep integration with the Unity engine.

What is C# Script For?

C# script is used to bring interactivity and functionality to games. With C# script, you can control game objects, create AI behavior, implement game mechanics, and build dynamic, immersive games. The possibilities are endless, and only limited by your imagination.

Why Should You Learn C#?

When it comes to game programming, C# delivers power and simplicity in one package. Here’s why learning C# is a great investment:

  • It’s the scripting language for Unity, the most popular engine for game development.
  • It’s versatile, enabling you to code for games, desktop software, and mobile apps.
  • It’s in high demand, with plenty of job opportunities and freelance projects.
  • It’s object-oriented, which makes the code easier to manage and understand.

In essence, if you’re planning to create games, particularly with Unity, learning C# scripting is not just an option, it’s a necessity. By the end of this tutorial, we hope you’ll be as excited about C# scripting as we are!

CTA Small Image
FREE COURSES AT ZENVA
LEARN GAME DEVELOPMENT, PYTHON AND MORE
ACCESS FOR FREE
AVAILABLE FOR A LIMITED TIME ONLY

Getting Started with C#

Before diving into the examples, ensure you have a development environment set up. We recommend Visual Studio for its C# integration and features; however, here we’ll include examples that are platform-agnostic and can be ran on any C# compiler.

Variables and Basic Data Types in C#

In C# script, declaring variables and their types is straightforward. Let’s start by declaring an integer:

int myNumber = 10;

The same principle applies to strings and other basic data types:

string myString = "Hello, C#!";
float myFloat = 20.5f;
bool myBool = true;

Here, we’ve declared a few different types of variables: int (integer), string (text), float (decimal point number), and bool (boolean).

Control Flow Statements in C#

Control flow is essential in any programming language, and C# is no different. Using if and else statements, we can dictate the flow of our program:

int testScore = 60;

if(testScore >= 60) {
    Console.WriteLine("You have passed the test.");
} else {
    Console.WriteLine("Sorry, you have failed the test.");
}

We can even use switch statements for more complex scenarios:

string season = "Spring";

switch(season) {
    case "Spring":
        Console.WriteLine("Flowers are blooming!");
        break;
    case "Summer":
        Console.WriteLine("It's vacation time!");
        break;
    case "Fall":
        Console.WriteLine("Leaves are falling!");
        break;
    case "Winter":
        Console.WriteLine("It's cold outside!");
        break;
    default:
        Console.WriteLine("Invalid season.");
        break;
}

These examples should introduce you to basic concepts in C#. Mastering these basics is vital before moving onto more advanced topics.

Functions in C#

Functions are reusable blocks of code performing specific tasks. Here’s a simple function that takes two numbers, adds them, and prints the result:

void AddNumbers(int num1, int num2) {
    int result = num1 + num2;
    Console.WriteLine(result);
}

To call the function:

AddNumbers(5, 3); // Outputs: 8

Loops in C#

Looping allows repeated execution of a block of code. Here’s a basic for loop example:

for (int i = 0; i < 10; i++) {
    Console.WriteLine(i);
}

This will print numbers from 0 to 9. Similarly, you can use a while loop:

int counter = 0;
while (counter < 10) {
    Console.WriteLine(counter);
    counter++;
}

There’s also the foreach loop, commonly used to iterate over arrays or lists:

string[] names = {"Joe", "Mike", "Anne"};

foreach (string name in names) {
    Console.WriteLine(name);
}

Working with Classes in C#

As an object-oriented language, C# makes heavy use of classes. Here’s a simple class representing a player in a game:

class Player {
    public string Name { get; set; }
    public int Score { get; set; }

    public Player(string name, int score) {
        Name = name;
        Score = score;
    }

    public void IncreaseScore(int increment) {
        Score += increment;
    }
}

Here, we’ve declared a class Player with properties Name and Score and two methods. One is a constructor for creating a new Player instance, and the second method increases the player’s score.

Player player1 = new Player("John", 100);
player1.IncreaseScore(50);
Console.WriteLine(player1.Score); // Outputs: 150

This demonstrates how to create a class, instantiate it, and call its method. As you delve deeper into C#, you’ll find classes and object-oriented programming at the heart of many game mechanics and designs.

Error Handling in C#

Moving forward, let’s consider error handling in C#. We use the try/catch block for this purpose.

int number;
try {
    number = int.Parse("not a number");
} catch (Exception e) {
    Console.WriteLine("Failed to parse number: " + e.Message);
}

The above code attempts to parse the string “not a number” into an integer. This would cause an error, and in a real-world application, likely terminate your program. But the catch block captures the error, and allows your program to continue running.

Working with Arrays and Lists

Let’s also explore how arrays and lists are used in C#:

int[] numbers = new int[5] {1, 2, 3, 4, 5};
foreach(int number in numbers) {
    Console.WriteLine(number);
}

That’s an example of an integer array. Now, let’s use a List:

List words = new List() {"apple", "banana", "cherry"};
foreach(string word in words) {
    Console.WriteLine(word);
}

Lists in C# are like arrays, but they have more functionality such as adding and removing elements.

Using Libraries in C#

Libraries provide pre-written code to perform common tasks. To use a library in your program, you need to import it at the start of the script.

For example, math operations requiring the Math library are used as follows:

double number = Math.Sqrt(4);
Console.WriteLine(number); // Outputs: 2

In this case, we’re using the Math.Sqrt() function from the Math library to find the square root of a number.

Putting It All Together: A Small Game

Here’s a small guessing game that puts all the concepts to use:

class Game {
    private static int secretNumber = new Random().Next(1, 11);

    public static void PlayGame() {
        Console.Write("Guess a number between 1 and 10: ");
        int playerGuess = int.Parse(Console.ReadLine());
        if(playerGuess == secretNumber) {
            Console.WriteLine("Congratulations! You guessed it.");
        } else {
            Console.WriteLine("Sorry, wrong guess. The number was " + secretNumber);
        }
    }
}

Game.PlayGame();

The game selects a random number, then prompts the player to guess. It checks if the input matches the selected number, providing an entertaining and simple way to bring together various concepts of C#.

How to Keep Learning

The journey to becoming proficient in C# and game development does not end here. It is just the beginning. Now that you’ve got a grasp of C# basics, it’s time to apply those skills into building games!

At Zenva, we offer a comprehensive offering called the Unity Game Development Mini-Degree. This program provides an extensive collection of courses exploring game development using Unity, one of the most used game engines globally. The Mini-Degree covers varied topics, including game mechanics, audio effects, custom assets, and more!

Further your learning and complement your newly obtained C# skills with Unity. Submerge yourself in real-world projects, building a portfolio to showcase your progress. You are not alone on this journey; we are with you every step of the way. With Zenva, you can go from beginner to professional.

Are you interested in more Unity-focused content? Check out our broad collection of Unity courses here.

Happy learning, and remember, every line of code gets you closer to becoming the developer you aspire to be. Keep challenging yourself, and keep creating amazing things!

Conclusion

Learning to code in C# hands you the power to create games, apps, and more, to bring your vision to life. When this knowledge is applied to game development in Unity, a whole new world of opportunities opens up. It’s an exciting journey that promises endless possibilities, innovations, and rewards.

Whether you’re just starting or have some programming background, we have a range of offerings to help you master your skills. At Zenva, we understand your ambitions and are committed to supporting you in your learning journey. Don’t wait another day. Supercharge your coding journey with products like our Unity Game Development Mini-Degree and take a leap into the fascinating world of game creation today!

Did you come across any errors in this tutorial? Please let us know by completing this form and we’ll look into it!

FREE COURSES
Python Blog Image

FINAL DAYS: Unlock coding courses in Unity, Godot, Unreal, Python and more.