Делюсь архитектурным шаблоном (StarterKit) для Unity проектов
Всем привет!
Периодически я пилю тут посты, которые с переменным успехом то набирают плюсы, то набирают минусы)))
Сегодня хочу поделиться шаблоном (в некотором роде "стартеркит") Unity-проекта, подходящего почти для любой игры. Набросал его для одной из инди-команд сообщества "Индикатор".
В основном это архитектура пользовательского интерфейса и логика загрузки сцен. И, конечно же, простой аудио-контроллер. И менеджер кастомных событий, что бы помочь новичкам избегать глупостей вроде постоянного отслеживания здоровья Игрока в методах Update какого-нибудь компонента-счетчика здоровья.
В репозитории (ссылку приведу в конце) используется как собственный код, так и сторонний (NonDrawingGraphic, UIParticleSystem).
Сейчас это шаблон с примером реализации Главного Меню (назову это "Экраном") и появляющегося окна (назову это "Диалогом").
Произвольные экраны и диалоги - это префабы со своей реализацией родительских классов ScreenController и DialogController. В случае диалогов, если не требуется выполнять никаких особых, не предусмотренных классом-родителем, действий - то можно использовать родительский класс без ущерба функциональности.
Логика следующая - существует главная сцена с контроллерами/менеджерами. "Главный Игровой Контроллер" при загрузке игры (появлении этой сцены при запуске) отображает загрузочный экран (назову это "Прелоадером").
Затем (не реализовано, т.к. это индивидуально для каждого проекта) предполагается чтение/загрузка настроек, конфигураций, файлов-сохранений и пр.
После этого вызывается экран "Главного Меню", который загружает необходимую ему сцену (разумеется, оставляя первую "главную" сцену активной), включает музыкальный фон и убирает "Прелоадер".
Буду очень рад вопросам, критике и советам по улучшению.
Ссылка на репозиторий: https://github.com/DL-SKY/PrototypeForIndicator
Надеюсь, кому-нибудь пригодится.
Удачи и успеха всем в геймдеве!
Лига Разработчиков Видеоигр
8.5K постов23.1K подписчиков
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"