В простейшем варианте должно быть что-то такое: когда игрок становится на платформу, мы делаем платформу его родительским объектом (свойство transform.parent), когда игрок спрыгивает с платформы, в transform.parent передаём null. Таким образом игрок будет двигаться сам по себе на платформе, будучи привязанным к ней до тех пор, пока не спрыгнет.
Выглядеть это будет как-то так:
using UnityEngine;
public class PlatformMove : MonoBehaviour {
// movement
private void OnCollisionEnter2D(Collision2D c) {
if (c.gameObject.tag == "Player")
c.transform.parent = transform;
}
private void OnCollisionExit2D(Collision2D c) {
if (c.gameObject.tag == "Player")
c.transform.parent = null;
}
}