Готовый перевод C# Game Programming Cookbook for Unity 3D / Программирование игр на Unity 3D C#. Книга готовых решений.: 2 Построение структуры ядра игры
В этой главе мы рассмотрим структуру базового проекта, в который мы будем добавлять все скриптовые компоненты игры, и размышления стоящие за этим. Эта глава создаст контекст для проектных решений, сделанных в основе ядра, а также обеспечит хорошую базу для понимания того, как индивидуальные готовые решения для кода работают вместе и почему они иногда могут зависеть от других компонентов.
Основу этой книги (как показано на Рисунке 2.1) составляют шесть основных областей:
1. Игровой Контроллер.
Игровой контроллер действует как центральный связующий скрипт для различных частей игры. В некотором смысле, он является основным клеем, который удерживает вместе различные компоненты, которые составляют игру.
Рисунок 2.1 Схема игровой основы.
2. Менеджер сцены.
Этот скрипт работает над загрузкой и сохранением сцен. Сцены это то, как Unity называет файлы уровней.
3. Менеджер UI.
Менеджер UI включает в себя все основные внутри-игровые элементы пользовательского интерфейса, такие как отображение очков и жизней.
4. Менеджер звука.
Менеджер звука управляет воспроизведением звука. В менеджере имеется массив, содержащий AudioClips - возможные звуки игры. Когда игра запускается в первый раз, менеджер звука создает один индивидуальный AudioSource за звук в массиве. Когда нам нужно воспроизвести звук, порядковый номер соответствующий месту звука в массиве передается в менеджер. Он использует индивидуальный AudioSource звука для воспроизведения источника, что помогает облегчить проблемы, которые могут возникнуть при воспроизведении слишком большого количества звуковых файлов из одного источника.
5. Игроки.
Игроки могут уже присутствовать в сцене игре или могут быть созданы игровым контроллером. Эта область имеет относительно сложную структуру, которую мы будет изучать позднее в Главе 3.
6. ИИ и Враги.
Как и игроки, ИИ-контролируемые персонажи или враги могут уже присутствовать в сцене во время загрузки или они могут быть созданы во время игры с помощью игрового контроллера или другого скрипта.
Хотя вы можете выбрать работу с вашей собственной основой, понимание той, что используется в этой книге, поможет увидеть как компоненты работают рядом друг с другом и как они работают вместе. Для максимальной гибкости, базовые классы должны быть в состоянии вместить множество различных конфигураций. Например, скрипт управления игрока должен позволять вводу быть переданным из другой скрипта, чтобы система управления могла свободно отключиться. Основному скрипту игрока не нужно знать, откуда пришёл ввод данных, но ему нужно обеспечить общий интерфейс, с которым будет взаимодействовать скрипт ввода.
Скрипт ввода может получать свои данные ввода с клавиатуры, мыши, от искусственного интеллекта, сетевые вводные данные и т.д., и только до тех пор, пока общий интерфейс используется для связи с контроллером игрока; это не имеет значения для контроллера игрока откуда на самом деле пришли данные ввода.
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/55263/242429
Переводчики: Arien0028
Настройки
Готово:
