Перейти к содержанию
  • записи
    104
  • комментариев
    125
  • просмотров
    26 136

Абстрактный игровой движок. Базовая архитектура


MasterGH

829 просмотров

В игровом движке может быть следующая архитектура

 

Менеджер сцен
    Список сцен
        Сцена1
          Менеджер игровых объектов
            Список игровых объектов
                Игровой объект1
                Игровой объект2
                Игровой объект3
        Сцена2
          Менеджер игровых объектов
            Список игровых объектов
                Игровой объект1
                Игровой объект2
                Игровой объект3
        Сцена3
          Менеджер игровых объектов
            Список игровых объектов
                Игровой объект1
                Игровой объект2
                Игровой объект3
        
Сцены могут подгружаться по одной или несколько сразу и выгружаться.

Каждый игровой объект содержит менеджер поведений

 

Игровой объект
    Менеджер проведений
        Список игровых проведений
            Поведение1
            Поведение2
            Поведение3


Поведения есть стандартные от игрового движка и есть пользовательские, которые пишут программисты.

Стандартное поведение Transform нахождение в пространстве может быть установлено по умолчанию у всех игровых объектов.

Поведение Transform хранит позицию, углы, масштаб, а также методы перемещения, вращения и другие.

 

Если представить себе иерархичную древовидную структуру, то именно по ней игровые объекты могут находиться друг в друге. Как папки файлового браузера. Transform позволит узнать является ли игровой объект родителем, дочерним по отношению к другому игровому объекту.

 

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

Поведения содержат функции игрового движка. Некоторые из них могут быть как: Update(), Start(), Enable(), Disable(), FixedUpdate()

 

Update - срабатывает перед кадром отрисовкой. Time.DeltaTime дельта времени между кадрами
FixedUpdate - также как и Update(), только это перед "кадром физики".
Start(), OnEnable(), OnDisable() - первый запуск, включение и выключение поведения.

 

Игровые объекты могут содержать строковый тег и номер слоя. Игровые объекты по слоям могут быть видны камере, могут взаимодействовать по физике. Слоем может быть номер или битовая маска.

0 Комментариев


Рекомендуемые комментарии

Комментариев нет

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.