Смысл вычислять трение? Просто берешь скорость поезда и в строчке про передвижение умножаешь этот вектор на это трение(можно даже через Collision узнавать на какой поверхности едет поезд и запрашивать переменную для трения у этого объекта). Пример(пишу с телефона так что без кода): Рельсы: public float Treny= 1f; Поезд: public float Treny = 0f; Рельсы: void OnColliderEnter(Collider other), потом if(CompareTag(«Train»)){other.Treny = Treny;} . Поезд : передвижение * Treny. Так и ресурсы экономим и разные рельсы есть