Юра Майллер, да, есть. Никаких копий проекта не надо. Есть и паттерны проектирования, которые позволяют реализовывать разную логику для разных данных (фабрика, например), есть и переменные, отвечающие за то на какую платформу что компилируется, есть и define, которые вообще позволяют вырезать код в зависимости от платформы.
Грубо говоря (псевдокодом):
if (targetPlatform == PC) {
} else if (targetPlatform == Mobile) {
}
почитайте про compilation defines в юнити например
Бабка Люда, десериализация повторно вызывает конструктор. Который вызывает десериализацию. Который вызывает конструктор. Разнесите объект хранения данных, и механизмы десериализации - создание объекта хранения данных не должно ничгео вызывать вообще
Грубо говоря (псевдокодом):
почитайте про compilation defines в юнити например