2.37M

Применение ООП в создании игр

1.

Применение ООП в создании
игр
ПРЕЗЕНТАЦИЮ ПОДГОТОВИЛ СТУДЕНТ
ГРУППЫ
С121К ОШАРИН В.А.

2.

Напоминалка про ООП
Объектно-ориентированное программирование
(ООП) – парадигма программирования,
ориентированная на объекты и конструкторы.
Ключевые концепции:
Классы: “Чертежи” для создания объектов.
Объекты: Экземпляры классов, обладающие свойствами и
методами.
Наследование: Получение свойств и методов от родительского
класса.
Полиморфизм: Способность объекта вести себя по-разному в
зависимости от контекста.
Инкапсуляция: Скрытие данных и методов внутри объекта.

3.

Преимущество и применение ООП в играх
Повторное использование кода: Классы
можно использовать повторно для разных
объектов, сокращая объем кода.
Организация кода: Структурированная
организация кода, легче поддерживать и
отлаживать.
Модульность: Разделение игры на отдельные
компоненты, упрощая работу в команде.
Расширяемость: Легко добавлять новые
функции и объекты без нарушения
существующего кода.

4.

Применение ООП на примере Unity
В Unity классы используются для создания
компонентов (Components) - частей игры,
которые управляют поведением объектов.
MonoBehaviour - базовый класс для всех
компонентов.
Примеры классов:
Enemy - класса для управления врагами.
Player - класс для управления игроком.
Projectile - класс для управления снарядами.

5.

Примеры основных методов ООП.
Инкапсуляция: Скрытие данных и методов объекта от
внешнего доступа, чтобы защитить их от случайных
изменений.
Пример: Свойство health врага может быть скрыто, доступ к нему
можно получить через методы GetHealth() и SetHealth().
Наследование: Создание новых классов (дочерних) на
основе существующих (родительских). Дочерний класс
наследует свойства и методы родительского класса,
расширяя их или добавляя новые.
Пример: FlyingEnemy (летающий враг) наследует от класса Enemy,
добавляя метод Fly().
Полиморфизм: Способность объекта вести себя по-
разному в зависимости от контекста.
Пример: Метод Attack() может быть реализован по-разному для
разных типов врагов: мечом, луком или заклинанием.

6.

Пример.

7.

Примеры НЕ правильного ООП в движках

8.

Пример рефакторинга кода

9.

Scriptable objects
Unity, ScriptableObject — это код класса, позволяющий создавать в игре Scriptable
Objects для хранения больших объёмов общих данных, не зависящих от
экземпляров скриптов.
Существует множество причин для использования Scriptable Objects в Unity. Они
могут снизить объём используемой под каждый дополнительный префаб
памяти.
Независимые объекты: Scriptable Objects не связаны с конкретными
объектами в сцене, они хранят данные отдельно.
Данные вне кода: Их можно редактировать в Unity Editor без изменений в
коде.
Переиспользование данных: Scriptable Objects можно использовать в
разных частях проекта, что упрощает создание и изменение игровых данных.
Наследование: Поддерживают наследование, что позволяет создавать
специализированные типы данных.
Сериализация: Scriptable Objects могут быть сериализованы, что позволяет
сохранять их данные в файлы и загружать их по требованию.

10.

Scriptable Objects пример

11.

Заключение
ООП в Unity представляется для новичков в
совершенно неявном его представлении, однако
на деле вся основа создания игр и есть
непосредственная прямая работа с объектами и
их свойствами. Принципы ООП постоянно
используются при написании классов в играх –
ведь каждый объект в пространстве имеет свои
свойства или выступает наследником иного
класса, представляющего его свойства.
English     Русский Rules