1. Введение в Unity и основы C# для скриптов
Введение в Unity и основы C# для скриптов
Unity — это игровой движок и редактор, в котором вы собираете сцену из объектов, настраиваете поведение и запускаете игру. В Unity поведение чаще всего задаётся скриптами на C#. Эта статья поможет вам уверенно начать: понять интерфейс Unity, основные термины и написать первые скрипты.
Что такое Unity и как в ней «устроена» игра
В Unity игра собирается из трёх ключевых сущностей:
Главная идея Unity:
!Карта основных окон Unity и их назначение
Основные окна Unity Editor
В типичном проекте вы чаще всего используете такие окна:
Debug.Log.Структура проекта и папка Assets
Unity проект — это набор файлов, но вам важнее понимать логику папки Assets:
Важно:
.cs.Официальная справка:
Создание первого скрипта и подключение к объекту
Типичный рабочий цикл:
PlayerMover).Правило именования, которое сэкономит время:
Базовый шаблон скрипта Unity
Когда вы создаёте C# Script, Unity генерирует класс. Чаще всего он наследуется от MonoBehaviour.
Пример скрипта:
Что здесь происходит:
using UnityEngine; подключает пространство имён Unity (чтобы были доступны MonoBehaviour, Debug.Log и другое).public class HelloUnity : MonoBehaviour объявляет класс HelloUnity, который является компонентом Unity.Start() — метод, который Unity вызывает автоматически при запуске сцены для активного объекта.Debug.Log(...) печатает сообщение в Console.> “Start is called before the first frame update.” — документация Unity > > MonoBehaviour.Start
Жизненный цикл: когда выполняются методы скрипта
Unity вызывает некоторые методы по имени автоматически. Самые важные на старте:
Start() — выполняется один раз перед первым кадром.Update() — выполняется каждый кадр.Пример:
Что важно понимать:
Update() вызывается примерно 60 раз в секунду.Update() быстро «засоряют» Console — это нормально для эксперимента, но в реальной игре так делают редко.!Порядок основных методов, которые Unity вызывает автоматически
Документация по Update():
Минимальные основы C# для Unity-скриптов
Переменные и типы
Переменная хранит значение. В C# у переменной есть тип.
Частые типы в Unity:
int — целое число.float — число с дробной частью.bool — true или false.string — текст.Vector3 — позиция/направление в 3D (x, y, z).Пример:
Обратите внимание:
float в C# обычно пишут суффикс f: 5.5f.Vector3 относится к Unity и доступен через using UnityEngine;.Методы
Метод — это «действие».
void означает, что метод ничего не возвращает.Пример метода:
Условия и циклы
Условия позволяют выполнять код по ситуации:
Доступность полей: public и private
public — поле видно извне и, как правило, отображается в Inspector.private — поле доступно только внутри класса.Пример:
Inspector: как «связывать» данные со сценой
Одна из сильных сторон Unity — вы можете настраивать параметры скрипта без изменения кода.
Публичные поля
Если поле public, Unity обычно показывает его в Inspector:
Вы можете менять speed в Inspector и сразу видеть эффект при запуске.
Ссылки на другие объекты
Частая задача — дать скрипту ссылку на другой объект (например, цель камеры).
Что здесь важно:
Transform — компонент, который есть у каждого GameObject; он хранит позицию, поворот и масштаб.transform — удобное свойство MonoBehaviour, которое даёт Transform текущего объекта.if (target == null) защищает от ошибки, если вы забыли назначить ссылку в Inspector.Первая практическая механика: движение объекта
Сделаем самое базовое движение: объект будет ехать вправо с заданной скоростью.
SimpleMover.Код:
Разбор:
Vector3.right — направление вправо (1, 0, 0).Time.deltaTime — время между текущим и предыдущим кадром.Time.deltaTime делает движение плавным и одинаковым на разных FPS.Документация по Time.deltaTime:
Как читать ошибки и использовать Console
Когда что-то не работает, сначала смотрите в Console:
Debug.Log.Полезная привычка:
Что дальше по курсу
В этой статье вы:
Start() и Update().Дальше логичный шаг — научиться управлять объектом через ввод (клавиатура/мышь), работать с физикой (Rigidbody/Collider) и строить структуру кода так, чтобы её было легко расширять.
Полезные официальные ресурсы для обучения: