3) Прогресс уровней: сохраняю как цифру/число. На старте у меня цифра 1, если id сцены ниже, или = прогрессу - пускаю на уровень.
Добавляю прогресс так (чуство что что-то не так есть):
if (sceneIndex == levelsProgress)
{
levelsProgress++;
SaveOnlyLevelProgress();
}
Разделяй реализацию и данные. Используй ScriptableObject для хранения информации об автомобилях. Бензин там же?
Можешь привязываться к id сцены, но тогда внимательно следи, чтобы они были в правильном порядке разложены у тебя. Я бы какую-нибудь ассоциацию более явную сделал внутри проекта и подтягивал бы ее по DI, но наверно это лишняя сложность для тебя сейчас.