Делаю свой текстовый квест на подобии
этого (заранее рекомендую выключить звук на ютубе).
Цель проекта - впервые сделать архитектуру по-человечески (что бы приложение было масштабируемым и новый функционал было добавлять без труда), разобраться с Zenject, впервые опубликоваться.
На видео мы видим, что по своей сути игра состоит из разных сообщений, которые выскакивают
пользователю.
О реализации:
Сама сцена была реализовано в виде
такого ScriptableObject, для того что бы создавать и настраивать новые реплики можно было сразу в эдиторе.
Для показа сцены было собрано окно на UI элементах, на котором висит вот
такой скрипт. Он парсит переданный ему SO, после чего окно "всплывает".
Так же есть третья сущность - менеджер окон. Он по своей сути должен стать точкой входа в игру. В зависимости от выбранной пользователем истории он должен начать с того или иного ScriptableObjecta. Он отправляет первому окну какую-либо опцию, окно ее показывает. Когда пользователь нажимает на один из вариантов - кнопка генерит событие и возвращает окну свой индекс (у каждой кнопки с вариантом ответа свой уникальный индекс.). Окно же в свою очередь возвращает менеджеру окон индекс нажатой кнопки, после чего менеджер окон запускает в другое окно следующую опцию. И так в течении игры.
Полагаю что я перемудрил. Хотелось бы сделать все максимально СОЛИДно, но я, видимо, не понимаю сути. Буду рад любым советам и замечаниям. А если кто согласится поделиться опытом в скайпе - буду втройне признателен.