Если ты первый раз делаешь игру на Unity и код оказался запутанным и лагучим: попробуй соблюсти Single Responsibility Principle - он сделает твой код более чистым. Затем используй профайлер - это покажет узкие места. И в конце следует добавить остальные принципы SOLID и GRASP. Потрать ещё 5-7 дней на рефакторинг, потом сократи аллокации GC мусора, избавься от синглтонов в статике и выкинь нахер этот говнодвижок. Возьми графическую либу и запили нормальную архитектуру. На Unity он тут пишет, мамкин геймдевелопер, блять.
Тут надо придумывать одну мощную механику, беря вдохновение не от самого проекта (потому что проекта без кор-механики ГКшной нет), а от чего-то в реальной жизни