0_Введение

Урок 0 : Введение в C# и Unity

О чём этот урок

Это отправная точка курса. Вы познакомитесь с языком C#, платформой .NET, научитесь ставить цели по SMART и настроите рабочее окружение.


1. Что такое C# и .NET

C# (произносится «си шарп») - современный объектно-ориентированный язык программирования, основной язык для разработки в Unity.

.NET - платформа (среда выполнения + набор библиотек), на которой работают программы на C#. Она берёт на себя управление памятью, безопасность типов и многое другое.

Исходный код (.cs)  →  Компилятор C#  →  Байт-код (IL)  →  .NET Runtime  →  Выполнение
C# в контексте Unity

Unity использует C# как единственный официально поддерживаемый язык. Все скрипты компонентов, игровая логика, физика - всё это пишется на C#. Знания этого курса являются основой для дальнейшей работы с движком.

Где ещё применяется C#


2. Почему C# удобен для начинающих

Свойство Что это означает на практике
Строгая типизация Компилятор поймает ошибку до запуска программы
Управление памятью Сборщик мусора (GC) сам удаляет неиспользуемые объекты
Богатая стандартная библиотека Не нужно писать базовые вещи с нуля
Читаемый синтаксис Код близок к обычному английскому языку
Активное сообщество Огромное количество документации и примеров

3. SMART-цели в обучении

Прежде чем начинать - сформулируйте цель. Размытая цель не даёт ориентира и демотивирует. Используйте методологию SMART:

Буква Критерий Пример
S - Specific Конкретная, чёткая «Разработать 2D-платформер на Unity»
M - Measurable Измеримая, есть критерий «Игра с 3 уровнями и рекордами»
A -Achievable Реалистичная для вас Учитывает текущий уровень навыков
R - Relevant Актуальная, нужна вам Соответствует вашим интересам и планам
T - Time-bound Ограничена по времени «Завершить за 4 месяца»
Пример формулировки цели

Плохо: «Хочу научиться программировать»

Хорошо: «За 3 месяца пройти курс C# Basic, выполнить все практические задания и создать консольную игру "Угадай число" с рекордами»

Совет по планированию нагрузки

Оцените реалистично: сколько часов в неделю вы готовы уделять обучению? Лучше стабильные 5 часов в неделю, чем нерегулярные марафоны по 20 часов.


4. Настройка среды разработки

IDE (Integrated Development Environment) - программа для написания, запуска и отладки кода. Включает редактор, компилятор и инструменты анализа кода.

Рекомендуемая IDE: JetBrains Rider

Почему Rider?

  • Глубокая интеграция с Unity (навигация по Unity API, автодополнение)
  • Встроенный отладчик, который подключается к запущенной Unity
  • Умный анализ кода и подсказки по best practices
  • Бесплатен для некоммерческого использования

Для Rider есть вариант получить лицензию для некоммерческого использования :
https://www.jetbrains.com/non-commercial/#choose-your-jetbrains-ide
https://www.jetbrains.com/rider/download/
Для загрузки потребуется ВПН
Скачать .NET 10 :
https://dotnet.microsoft.com/ru-ru/download/dotnet/10.0

Альтернативы:


5. Создание консольного приложения

Консольное приложение - стандартная точка старта для изучения C#. Весь ввод и вывод происходит через текстовую консоль, без UI. Именно в нём выполняются практические задания курса.

В JetBrains Rider

  1. Запустите Rider → нажмите New Solution
  2. В левой панели выберите .NET / Console Application
  3. Укажите имя проекта (например, CSharpBasic) и папку для сохранения
  4. В поле Framework выберите актуальную версию .NET (10 или выше)
  5. Нажмите Create

После создания откроется файл Program.cs - это точка входа программы. Запустить можно кнопкой ▶ вверху или горячей клавишей Shift + F10.

// Program.cs - файл создаётся автоматически
Console.WriteLine("Hello, World!");

В Visual Studio

  1. File → New → Project
  2. Выберите шаблон Console App (не Console App .NET Framework)
  3. Задайте имя проекта и нажмите Next → Create
  4. Откроется файл Program.cs

Запуск: кнопка ▶ или Ctrl + F5 (без отладки).

Top-level statements (C# 9+)

Современные шаблоны создают Program.cs без явного класса и метода Main:

Console.WriteLine("Hello, World!"); // код просто сверху файла

Это сокращённая запись - компилятор сам добавляет Main за кулисами. В Unity такой синтаксис не используется - там всегда нужны полные классы.

Консоль закрывается сразу?

Если запускаете из проводника (двойной клик на .exe) - консоль закроется мгновенно. Запускайте из IDE или добавьте Console.ReadKey() в конец программы.


6. Комментарии в коде

Комментарий - это текст в коде, который компьютер полностью игнорирует. Он нужен только вам и другим программистам - чтобы объяснить, что делает тот или иной кусок кода.

Существует два вида комментариев:

Однострочный - начинается с //, действует до конца строки:

// Это однострочный комментарий - компьютер его пропустит
Console.WriteLine("Hello"); // Комментарий можно добавить и после кода

Многострочный - заключается между /* и */, может занимать несколько строк:

/* Это многострочный комментарий.
   Он может занимать несколько строк. */
Console.WriteLine("Hello");
Совет

Комментируйте всё, что хочется запомнить или что пока непонятно - это нормальная и полезная практика.


7. Структура программы на C#

Программа выполняется последовательно - компьютер читает и выполняет команды сверху вниз, строка за строкой, как по рецепту. Сначала первая команда, затем вторая, и так далее.

У каждой программы есть точка входа - место, с которого начинается это выполнение.

Что такое метод

Метод - это именованный блок команд. В C# точкой входа служит метод с названием Main - компьютер начинает чтение программы именно с него.

using System;

namespace MyFirstProgram
{
    class Program
    {
        // Точка входа - программа начинает выполнение отсюда:
        static void Main(string[] args)
        {
	        // первая команда
            Console.WriteLine("Hello, World!"); 
            // вторая команда
            Console.ReadKey();                  
        }
    }
}

8. Вывод в консоль и ввод данных

Console.WriteLine - вывод строки

Выводит текст в консоль и переходит на новую строку. Следующая команда вывода начнётся с новой строки.

Console.WriteLine("Привет, мир!");
Console.WriteLine("Это вторая строка.");

Console.Write - вывод без переноса строки

Выводит текст, но не переходит на новую строку. Следующий вывод окажется на той же строке.

Console.Write("Введите имя: ");
Console.Write("Я на той же строке.");

Console.ReadLine - считывание ввода пользователя

Останавливает программу и ждёт, пока пользователь напечатает текст и нажмёт Enter. Возвращает введённую строку.

Console.Write("Введите имя: ");
string name = Console.ReadLine();

Интерполяция строк ⭐

Способ вставить значение переменной прямо внутрь строки. Перед кавычкой ставится $, а имя переменной заключается в {}.

string name = Console.ReadLine();
Console.WriteLine($"Привет, {name}!");
Пометка ⭐

Этот синтаксис может казаться необычным на первых порах - это нормально. Вернитесь к нему, когда разберётесь с переменными.

Console.ReadKey - ожидание нажатия клавиши

Останавливает программу и ждёт, пока пользователь нажмёт любую клавишу. Используется в конце, чтобы консольное окно не закрылось сразу после выполнения.

Console.ReadKey();
Частая ошибка новичка

Если не поставить Console.ReadKey() или Console.ReadLine() в конце программы, консольное окно мгновенно закроется - вы не увидите результат. Всегда добавляйте паузу при тестировании.


Итог урока


📋 Перейти к практическим заданиям урока 0

Материалы для дополнительного ознакомления :

Введение в C#
Hello world program
Консольный ввод-вывод
Постановка задач