Основы C# в Unity: Работа с переменными, массивами и выводом в консоль
TutorialШкола itProger / Программирование•159,904 views•Mar 17, 2022
Изучаем базовые концепции скриптов на C# в Unity: namespaces, классы, методы, переменные и массивы с практическими примерами.
Blurb
В этом уроке вы познакомитесь с основами программирования на C# в Unity:
- Понимание структуры C# скрипта в Unity: namespaces, классы и наследование от MonoBehaviour.
- Использование методов Start и Update для управления поведением объектов.
- Вывод информации в консоль Unity с помощью Debug.Log.
- Создание и использование переменных с разными модификаторами доступа (public, private, protected).
- Работа с массивами и динамическими коллекциями List.
- Основы условий и циклов в C# для Unity.
Все примеры сопровождаются демонстрацией в Unity, что помогает лучше понять, как скрипты взаимодействуют с игровыми объектами.
Want the big picture?
Highlighted Clips
Введение в структуру C# скрипта в Unity
Объяснение namespaces, класса MonoBehaviour и методов Start и Update.
Вывод информации в консоль Unity
Как использовать Debug.Log для вывода сообщений в консоль Unity и почему нельзя использовать стандартный Console.
Привязка скрипта к игровому объекту
Объяснение необходимости размещения скрипта на объекте для его выполнения и влияние активности объекта на выполнение скрипта.
Работа с переменными в C# для Unity
Создание переменных с разными типами данных и модификаторами доступа, а также их отображение и изменение в Unity Editor.
Введение и обзор базовых концепций C# в Unity
В начале урока автор приветствует зрителей и рекомендует сайт itproger.com, где можно найти код урока, домашние задания и дополнительную информацию. Он сразу переходит к разбору структуры стандартного C# скрипта в Unity, обращая внимание на ключевые элементы: подключаемые namespace (пространства имен), класс, наследующий от MonoBehaviour, и методы Start и Update.
"Любой C# скрипт, который создается в Unity, он будет состоять из нескольких вещей: во-первых, это различные подключаемые namespace... Также здесь создается сам класс, который наследует всё от основного класса MonoBehaviour."
Автор объясняет, что namespace — это модули или библиотеки, которые расширяют функционал скрипта, а MonoBehaviour — базовый класс для всех скриптов в Unity, предоставляющий доступ к жизненному циклу объекта.
Ключевые моменты:
- Namespace подключают дополнительные классы и функции.
- Класс скрипта должен наследовать MonoBehaviour для взаимодействия с Unity.
- Методы Start и Update — основные точки входа для логики скрипта.
- Можно удалять ненужные подключения, если функционал не используется.
Работа с консолью Unity и вывод информации
Автор показывает, как вывести сообщение в консоль Unity с помощью класса Debug и метода Log. Он подчеркивает, что стандартный класс Console из C# не подходит для вывода в Unity, так как нужна именно консоль движка.
"Нам нужно вывести информацию в консоль Unity, поэтому здесь нам нужно обратиться к специальному классу, который существует в UnityEngine, он называется Debug."
Также объясняется, что скрипт должен быть прикреплен к объекту в сцене (например, к камере), чтобы его методы выполнялись при запуске игры.
"Чтобы ваш скрипт выполнялся, нужно, чтобы он находился на каком-то объекте, который при старте игры будет создаваться."
Ключевые моменты:
- Для вывода в консоль Unity используется Debug.Log.
- Стандартный Console не работает в Unity.
- Скрипт должен быть привязан к объекту в сцене для выполнения.
- Если объект неактивен, скрипт не выполняется.
Переменные в C# для Unity: типы и модификаторы доступа
Далее автор переходит к созданию переменных в скрипте. Он объясняет, что для объявления переменной нужно указать тип данных и модификатор доступа (public, private, protected). Особое внимание уделяется тому, что public переменные отображаются в инспекторе Unity и их значения можно менять прямо в редакторе.
"Если мы укажем модификатор доступа public, то переменная будет видна в Unity, и мы можем менять её значение прямо в редакторе."
Также показано, что изменения переменных во время выполнения игры не сохраняются после остановки проекта.
Ключевые моменты:
- Объявление переменных: тип данных + модификатор доступа.
- Public переменные видны и редактируются в Unity.
- Изменения переменных во время игры не сохраняются.
- Можно создавать переменные разных типов: int, float, string и др.
Управление видимостью переменных в Unity
Автор рассказывает, как скрыть public переменную из инспектора Unity с помощью атрибута [NonSerialized], а также как показать private или protected переменную с помощью [SerializeField].
"Если нужно, чтобы переменная была public, но не отображалась в Unity, используйте [NonSerialized]. Если переменная private, но нужно показать её в Unity, используйте [SerializeField]."
Это позволяет гибко управлять тем, какие данные доступны для редактирования в редакторе, а какие — нет.
Ключевые моменты:
- Атрибут [NonSerialized] скрывает public переменную в инспекторе.
- Атрибут [SerializeField] показывает private/protected переменную в инспекторе.
- Позволяет контролировать доступность переменных в редакторе.
Массивы в Unity: статические и динамические
Далее рассматриваются массивы. Автор показывает, как объявить статический массив с фиксированным размером и как он отображается в инспекторе Unity, где можно менять размер и значения элементов до запуска игры.
"Массив — это фиксированная структура, размер которой нельзя менять во время выполнения игры."
Затем он объясняет динамические массивы на основе класса List<T>, для которых не нужно указывать размер заранее, и которые можно изменять во время работы программы. Для этого нужно подключить System.Collections.Generic.
"Динамический массив создается на основе класса List, и его размер можно менять во время выполнения."
Ключевые моменты:
- Статические массивы имеют фиксированный размер, задаваемый при создании.
- Размер статического массива нельзя менять во время игры.
- Динамические массивы реализуются через List<T>.
- Для динамических массивов нужно подключить дополнительные namespace.
Использование условий, циклов и методов в C# для Unity
В заключительной части урока автор кратко упоминает, что в Unity можно использовать все стандартные конструкции C#: условия (if, switch), циклы (for, while, foreach), а также создавать собственные методы.
"Вы можете создавать свои методы и использовать стандартные конструкции языка C#, такие как условия и циклы."
Он демонстрирует создание пустого метода и его вызов из Start, подчеркивая, что синтаксис и возможности такие же, как в обычном C#.
Ключевые моменты:
- В Unity можно использовать все стандартные конструкции C#.
- Можно создавать и вызывать собственные методы.
- Синтаксис и логика полностью совпадают с обычным C#.
Итоги урока и рекомендации
В конце автор подводит итоги: были рассмотрены базовые концепции работы с C# скриптами в Unity, включая подключение namespace, создание классов и методов, работу с консолью, переменными и массивами.
"В этом уроке мы рассмотрели базовые концепции, научились работать с переменными и массивами в C# скриптах."
Он приглашает зрителей посетить сайт itproger.com и присоединиться к сообществу, а также обещает дальнейшее изучение тем в следующих уроках.
Ключевые моменты:
- Изучены основы C# в Unity: классы, методы, переменные, массивы.
- Рекомендация использовать сайт itproger.com для дополнительного обучения.
- Следующие уроки будут посвящены более сложным темам.
Этот урок отлично подходит для начинающих, давая прочную базу для понимания, как устроены скрипты в Unity и как использовать C# для создания интерактивных элементов в играх.
Key Questions
В Unity для вывода сообщений в консоль используется класс Debug из пространства имен UnityEngine, так как стандартный Console не отображает сообщения в консоли Unity.
Have more questions?
Analyzing video...
This may take a few moments.