Skip to content

Отделение логики игры от Unity

Часто удобно отделить логику игры, чтобы тестировать саму модель игры вне Unity. С точки зрения MVC, юнити является всего лишь одним из способов визуализации игры (View), но при этом очень связывает возможность вынесения логики вне Unity, т.к. заставляет разработчика наследоваться от Unity-классов, после чего классы становятся зависимыми от Unity и не могут выноситься отдельно от них. Кроме того, часто граница отделения логики размыта, и разработчик не знает: это еще логика самой игры или её визуализация. В целях удобства тестирования вне Unity, именно модели игры, удобно принять определение, когда поведение вне 3D-пространства является логикой самой игры, а поведение в 3D-пространстве является визуализацией игры. Достичь этого так же помогает partial-подход (см. легкость архитектуры). Поэтому для удобства отделения логики простым копированием файлов исходный код логики игры выделен в компонентах Tac в отдельную директорию _TacLibrary/_GameLogic. Копируя её можно реализовать другую визуализацию, например, в текстовом виде или в виде таблиц, а логика останется неизменной. При этом можно использовать чистый C# проект или консольный, или, что более удобно WinForms.