Я использую платформы с rigidbody, движимые AddForce и самописный контроллер игрока. С движущимися платформами справился быстро: если персонаж контактирует с платформой и у платформы есть rigidbody, то беру velocity этой платформы, которое передаю персонажу. Но с вращением сложнее! Ведь при нахождении на вращающейся платформе, нам нужно двигать и вращать его соответственно расстоянию от центра вращения. При этом платформа может стоять неподвижно и только angularVelocity вращает ее вокруг одной или более осей, при этом персонаж должен не только вращаться, но и двигаться вокруг центра вращения платформы. То есть описывать круг, если платформа совершает круговое движение.
Я думаю, можно передать персонажу угловую скорость так: берем angularVelocity платформы и делим ее на квадрат расстояния до персонажа. Причем берем только глобальные X и Z, т.к. нас интересует только горизонталь. Получаем angularVelocity персонажа. Не тестировал, может ошибаюсь.
Но с вычислением вектора смещения, который испытывает персонаж относительно платформы, совсем не понимаю, что делать. Может что подскажете?