Александр Прохорович, ну так я и взял миллион треков из вопроса пользователя.
Тем не менее 17 петабайт это тоже не сильно много для такого сервиса в единчном экземпляре.
Посыл моего ответа скорее в том, что сами объемы данных - это не то что прям сильно важно в данном случае.
Alexander, так а что мешает писать #if LINUX а потом параметрами компилятора указать платформу?
Вы же можете настраивать параметры компиляции и его директивы. Делаете 2 варианта сборки проекта - "под линукс" и "под виндовс" - все равно там постпроцесс разный наверняка. И в них определяете нужные дефайны.
Препроцессорные директивы вы можете задать сами для компилятора. Т.е. это не часть дотнета/сишарпа - вы их просто определяете когда компилируете на нужной платформе и все.
Lisik, да. И что в этом такого? Ну можете сильнее подробить строку - сделать GetName, и уже без всяких кейсов формировать строку из имени и параметров.
Не похоже просто что тут вообще какой то паттерн нужен.
nano_e_t_4, ну так посмотрите попал ли он в группу донтдестроев - в иерархии есть.
И если вы руками его уничтожаете - то конечно же он будет уничтожен и не появится
Александр Кудряшов, Дебаг в зубы и вперед искать где что у вас не так. Сложно сказать не видя проекта.
Но если реально скорость нужна константная - то проще делать вот как вы написали - трансформ и коллизии вручную. Можно коллизии еще рейкастом детектить (точнее сферкастом в вашем случае) - может будет лучше (особенно если вы двигаете в апдейте - в нем же и делайте сферкаст).
Ну и не забудьте прибить ригдбоди - он не нужен для ручного движения