Как лучше/правильнее реализовать архитектуру проекта игры в

Общие вопросы о Unity3D

Как лучше/правильнее реализовать архитектуру проекта игры в

Сообщение ThomasBak 13 ноя 2022, 19:44

Игра карточная, 2Д, в основном идёт работа с UI, а также некоторое общение между клиентом и сервером в реальном времени посредством Вебсокета.
У меня такая идея.
Один класс (WS_Controller) отвечающий только за Вебсокет.
Другой класс — UI_Controller, в нём будут храниться ссылки на все объекты Canvas'а.
И остальные классы это на каждую логику свой класс, то есть, один класс для реализации логики ЧАТА, другой класс для логики НАСТРОЕК, например.

Вообще не понимаю, как это делается правильно. Не хочу говнокод писать и считаю, что нормальный программист, должен всегда преобразовывать повторяющийся код в метод/функцию и делать всё грамотно, без хаоса.

А ещё у меня такой вопрос, каким способом лучше брать объект из другого класса? Например в логике ЧАТА мне нужно будет брать переменные из класса UI_Controller

Буду благодарен за любую подсказку, наставление!
ThomasBak
UNец
 
Сообщения: 5
Зарегистрирован: 08 авг 2022, 22:07

Re: Как лучше/правильнее реализовать архитектуру проекта игры в

Сообщение 1max1 13 ноя 2022, 22:57

Написание хорошей архитектуры приходит с опытом и далеко не быстро. Не думаю что кто-то сможет дать тебе конкретный ответ на абстрактный вопрос.
А ещё у меня такой вопрос, каким способом лучше брать объект из другого класса? Например в логике ЧАТА мне нужно будет брать переменные из класса UI_Controller

Передай туда ссылку через инспектор.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как лучше/правильнее реализовать архитектуру проекта игры в

Сообщение Saltant 14 ноя 2022, 01:26

Оратор выше прально сказал, что приходит всё это с опытом. Правильных путей нет, просто ты сделаешь как тебе удобно, со временем если проекты делаешь часто, то отрефакторишь свою архитектуру.
Я вот например для вебгл проектов сделал себе шаблон в виде пакета юнити и при новом проекте просто его импортирую. Я использую паттерн Singleton, у меня есть GameController он синглтон и в нем ссылки на различные менеджеры (sound, event, player и т.д), т.е если я хочу взять что то из менеджера какого то, то иду в геймконтроллер и получаю этот менеджер через дженерик функцию.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11