Así que he estado atascado en esto durante los últimos días, investigué y probé muchas cosas, pero todavía no puedo resolver esto.
Tengo un reproductor con Rigidbody y una plataforma móvil con Rigidbody también. La plataforma se mueve de un lado a otro y quiero que el jugador permanezca en ella cuando esté encendido.
Entonces, cuando el jugador salta a la plataforma, la plataforma se convierte en su padre. Esto está funcionando bien, no hay problema en ese extremo.
private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.CompareTag("Moving Platform")) { transform.parent = collision.gameObject.transform; } private void OnCollisionExit2D(Collision2D collision) { if (collision.gameObject.CompareTag("Moving Platform")) { transform.parent = null; } }La cuestión es que, dado que el jugador tiene un Dynamic RigidBody, parece que el movimiento de su padre no lo afecta. Puedo ver su posición moviéndose en el inspector, pero en realidad no se está moviendo en el juego.
Cuando configuro el tipo de cuerpo en cinemático, el jugador permanece en la plataforma, pero luego no puedo encontrar una manera de moverme mientras estoy en ella. Así que básicamente se queda atascado en la plataforma.
Hay alguna manera sencilla de reparar esto ? ¿O debería cambiar por completo la forma en que hago estas plataformas móviles?
(Por cierto, todos los movimientos se manejan con física)
Cuando mueves al reproductor, a veces se desprende de la colisión incluso con un pequeño margen y dará resultados extraños. prueba Physics2d.OverlapCircle en su lugar.