Скорее всего так. Но можно цепочку команд использовать. Просто По факту у нас будет очередь, которая состоит из команд которые инициализируют нужные сущности в нужном порядке. Что-то типо :
var queque = new CommandQueque();
queque.Add(new InitCarCommand());
queque.Add(new InitEngineCommand());
queque.Add(new CheckFuelCommand());
ColdSpirit, А нужен ли он в данном примере? По вашему описанию у вас идет просто взаимодействие моделей данных. И нет никаких проблем дернуть методы ваших сущностей так как вам надо. На сколько я понимаю, у вас проблема в том, что бы на момент вызова методов Car существовали все объекты.
Stanislav Pugachev, Всегда можно кешировать данные. Ну вы скорее всего так и так для идентификации юзера каждый раз лезете в базу. Что вам использовать под капотом, зависит только от того какие нагрузки вы хотите держать. И всегда можно делать сложные выборки одним запросом.
Boris19, Сразу кнопки рисуют а потом верстают. Если стоит вопрос в анимировании кнопок то есть куча инструментов, начиная со всяких твиннеров заканчивая Аниматором юнити.
Boris19, Ну или если так сильно хочется можно реализовать кнопку с помощью обычного Image. У монобеха что на нее будете цеплять реализовать интерфейсы IPointerClick, IPointerDown, IPointerUp. Два последних нужны для того что бы можно было реализовать реакцию по нажатию на кнопку.