No history yet

Основы C#

Синтаксис C#

Добро пожаловать в мир C#! Это язык программирования, который вы будете использовать для создания игр в Unity. Каждый язык имеет свои правила, или синтаксис, подобно грамматике в человеческих языках. Давайте рассмотрим основной строительный блок C# программы.

using System;

class Program
{
    static void Main()
    {
        // Это комментарий. Компьютер его игнорирует.
        Console.WriteLine("Привет, мир!");
    }
}

Давайте разберем это:

  • using System; сообщает вашей программе, что мы хотим использовать набор готового кода из библиотеки System. В данном случае, она позволяет нам выводить текст на консоль.
  • class Program определяет новый тип объекта. Пока что думайте о классе как о контейнере для вашего кода.
  • static void Main() — это специальный метод, который является точкой входа в программу. Когда вы запускаете код, выполнение начинается именно отсюда.
  • Console.WriteLine("Привет, мир!"); — это команда. Она говорит консоли вывести строку текста «Привет, мир!». Обратите внимание на точку с запятой ; в конце. В C# большинство команд должны заканчиваться точкой с запятой. Это как точка в конце предложения.

Каждая открывающая фигурная скобка { должна иметь соответствующую закрывающую }. Они группируют код вместе.

Переменные и типы данных

В программировании нам нужно место для хранения информации, такой как здоровье игрока или количество собранных монет. Для этого мы используем переменные. Думайте о переменной как о ящике с этикеткой, в который вы можете положить что-то. У каждого ящика есть имя и тип, который определяет, что в нем можно хранить.

Вот некоторые из наиболее распространенных типов данных в C#:

ТипОписаниеПример
intЦелые числа10, -5, 150
floatЧисла с плавающей точкой (дробные)3.14f, -0.5f
boolЛогические значения (истина/ложь)true, false
stringПоследовательность символов (текст)"Привет, игрок!"
charОдин символ'A', '!'

Чтобы использовать переменную, вы сначала должны ее объявить, указав ее тип и имя, а затем присвоить ей значение.

// Объявление и инициализация переменных
int playerScore = 100;
float playerHealth = 75.5f;
bool isGameOver = false;
string playerName = "Герой";
char playerInitial = 'H';

Обратите внимание на f после 75.5. Это говорит C#, что число является типом float, а не другим типом дробных чисел (например, double). Это важно в Unity.

Операторы

Операторы — это символы, которые выполняют операции над переменными и значениями. Наиболее распространенными являются арифметические операторы.

int a = 10;
int b = 3;

int sum = a + b;  // Сложение, результат: 13
int diff = a - b; // Вычитание, результат: 7
int prod = a * b; // Умножение, результат: 30
int quot = a / b; // Деление, результат: 3 (дробная часть отбрасывается)
int rem = a % b;  // Остаток от деления, результат: 1

Существуют также операторы присваивания для изменения значения переменной. Мы уже использовали основной из них, =. Но есть и сокращенные формы:

Выражение playerScore = playerScore + 10; можно записать короче: playerScore += 10;. Это работает для +, -, *, и /.

Наконец, есть операторы сравнения, которые сравнивают два значения и возвращают bool (true или false). Они необходимы для принятия решений в коде.

  • == (равно)
  • != (не равно)
  • > (больше чем)
  • < (меньше чем)
  • >= (больше или равно)
  • <= (меньше или равно)

Управление потоком

Ваш код не всегда выполняется линейно, сверху вниз. Часто вам нужно принимать решения или повторять действия. Для этого используются условные конструкции и циклы.

Условные конструкции

Конструкция if-else позволяет выполнять код только при выполнении определенного условия. Это похоже на принятие решений в реальной жизни: «Если идет дождь, я возьму зонт. В противном случае, я оставлю его дома».

int playerHealth = 10;

if (playerHealth <= 0)
{
    Console.WriteLine("Игра окончена!");
}
else if (playerHealth < 50)
{
    Console.WriteLine("Внимание! Низкий уровень здоровья!");
}
else
{
    Console.WriteLine("Все в порядке.");
}

В этом примере, поскольку playerHealth равен 10, что меньше 50, но больше 0, будет выведено сообщение «Внимание! Низкий уровень здоровья!».

Циклы

Циклы позволяют повторять блок кода несколько раз. Это очень полезно. Представьте, что вам нужно создать 5 врагов в игре. Вместо того чтобы писать код для создания врага 5 раз, вы можете использовать цикл.

Самый распространенный тип цикла — это цикл for.

// Этот цикл выполнится 5 раз
for (int i = 0; i < 5; i++)
{
    // i будет принимать значения 0, 1, 2, 3, 4
    Console.WriteLine("Создание врага номер " + (i + 1));
}

Другой полезный цикл — while. Он продолжает выполняться, пока его условие истинно. Это отлично подходит для ситуаций, когда вы не знаете точно, сколько раз нужно будет повторить действие.

int bullets = 6;

while (bullets > 0)
{
    Console.WriteLine("Стреляем! Осталось патронов: " + bullets);
    bullets--; // Уменьшаем количество патронов на 1
}

Функции

Функции (в C# их часто называют методами) — это именованные блоки кода, которые выполняют определенную задачу. Они помогают организовать ваш код, делая его более чистым и пригодным для повторного использования. Вместо того чтобы писать один и тот же код снова и снова, вы можете поместить его в функцию и вызывать ее по имени, когда это необходимо.

Вот как выглядит простая функция:

// Определение функции
void SayHello()
{
    Console.WriteLine("Привет из функции!");
}

// Вызов функции
SayHello(); // Выведет: Привет из функции!

Слово void означает, что функция не возвращает никакого значения. Функции также могут принимать входные данные, называемые параметрами, и возвращать результат.

// Эта функция принимает два целых числа и возвращает их сумму
int Add(int num1, int num2)
{
    int result = num1 + num2;
    return result;
}

// Вызов функции и сохранение результата
int sum = Add(5, 10);
Console.WriteLine(sum); // Выведет: 15

Здесь int перед Add указывает, что функция вернет значение типа int. num1 и num2 — это параметры. Когда мы вызываем Add(5, 10), 5 присваивается num1, а 10num2.

Функции являются основой для создания игровых механик в Unity. Например, у вас может быть функция TakeDamage, которая уменьшает здоровье игрока, или функция Jump, которая заставляет персонажа прыгать.

Quiz Questions 1/6

Какая специальная функция является точкой входа в программу на C#?

Quiz Questions 2/6

Какой тип данных лучше всего подходит для хранения имени игрока, например «Герой»?

Это были основы C#. Понимание этих концепций — переменных, операторов, условных конструкций, циклов и функций — даст вам прочную основу для создания скриптов в Unity.