Jump to content
Cerpion

Subir Plataforma

Recommended Posts

¡Hola a todos!

Tengo una duda

estoy intentando hacer un juego de plataformas, quiero hacer que el personaje al saltar se suba a plataformas que no alcanza y estando en ellas se pueda mover de izquierda a derecha, subirse o bajar.
¿De qué forma se podría realizar?


Necesito un concepto básico de cómo puede funcionar, como puedo realizarlo.

no se si me explico bien :60_sweat: .

 

Muchas gracias por su tiempo.

Share this post


Link to post
Share on other sites

Hola, si estás usando un Rigidbody dinámico podés ponerle a la plataforma un PlatformEffector. Se usa exactamente para obtener eso que querés (One Way platforms), y es muy bueno. La plataforma tendrá un Collider 2D (por ej un BoxCollider2D), agregale un PlatformEffector, y luego andate al collider y tildá la opción used by Effector, o similar.

El concepto sería que si la velocidad del punto de contacto tiene una determinada dirección (que la podés filtrar con el platform effector) este contacto será ignorado o no. Esto te permite poner la plataforma de la forma que quieras, ya sea mirando hacia arriba (solo accesible por debajo), o usando cualquier otra rotación.

 

Si estás calculando las colisiones manualmente (rigidbody kinemático), simplemente debés ignorar cualquier contacto mientras el personaje esté subiendo (velocidad vertical positiva). Esto es muy por arriba, hay muchos más trucos, pero estoy casi seguro que estás en el caso anterior.

 

Saludos.

  • Like 1

Share this post


Link to post
Share on other sites

¡Muchas gracias lightbug :6_smile:!

Es algo muy bueno para tener en cuenta, una vez quise hacer eso y no supe cómo se llamaba, aunque mi proyecto es en 3D, el sistema que trato hacer es algo parecido a assansin creed, pero muy básico.

He estado probando, tengo un carácter controller y he probado hacer que mi personaje detecte una plataforma con cuatro raycast, dos en los brazos para detectar cuando colisiona contra un muro y dos un poco más arriba, si los de arriba no detectan nada el jugador podrá escalar.

https://ibb.co/6Y9DgB3

Una vez el personaje detecta que se puede subir desactiva el script de movimiento y gravedad y se creo un raycast encima de él, que se controlara con el movimiento horizontal.

https://ibb.co/0rXpRsz

Es decir, si oprimo la tecla derecha, el raycast se moverá y si detecta una colision se moverá, si no colisiona no se moverá más.

https://ibb.co/gD4rF7v

No sé cómo hacer para que el personaje sepa que puede pasar a otra plataforma.

https://ibb.co/1TBWNjz

Que detecte si cabe en una superficie para subir.

https://ibb.co/bgN8Znc

O sepa que hay un obstáculo encima de él y es escalable.

https://ibb.co/1957cNJ

Como hace el jugador cuando cae treparse en la esquina más cercana.

https://ibb.co/ccrkNgw

No se si es una forma optima y no se bien como funciona el sistema he buscado por varias partes y todo el contenido está en inglés y no tengo claro cómo funciona el sistema. :62_dizzy_face:

 

 

  • Like 1

Share this post


Link to post
Share on other sites
8 hours ago, Cerpion said:

s algo muy bueno para tener en cuenta, una vez quise hacer eso y no supe cómo se llamaba, aunque mi proyecto es en 3D, el sistema que trato hacer es algo parecido a assansin creed, pero muy básico.

Ahhhh agarré por el lado de las one way platforms ... cualquiera :60_sweat:  ...perdón.

8 hours ago, Cerpion said:

No sé cómo hacer para que el personaje sepa que puede pasar a otra plataforma.

Está muy bien pensado. Yo ahora mismo estoy implementando algo similar, y lo voy a hacer algo parecido al tuyo. Es decir una vez estás colgado, lo que te importa son los dos rays de las manos (y en muchos casos uno de esos rays de verificación para el cuerpo).

En mi caso cada ray simula las manos, como el  tuyo. Cuando el ray de la mano derecha (siguiendo con tu imagen) no detecta nada (https://ibb.co/gD4rF7v) entonces se disparan dos situaciones. Con esta hacés un salto fijo siempre:

  1. Hacés el test de las manos (de arriba para abajo), desde la posición ficticia final. Si te da que ocurren los dos hits, entonces el personaje puede saltar.
  2. Caso contrario al 1, se usa para esquinas (abiertas o cerradas), algo más complicado.

 

8 hours ago, Cerpion said:

No se si es una forma optima y no se bien como funciona el sistema he buscado por varias partes y todo el contenido está en inglés y no tengo claro cómo funciona el sistema. 

Yo la verdad que mucho no se de esto, también estoy como vos (y algo más atrasado al parecer).

Había un usuario por aquí que había implementado un muy buen sistema de climbing, no recuerdo su nombre.

 

Edited by lightbug

Share this post


Link to post
Share on other sites

vas a tener que usar mas raycasts...

porejemplo para ver si hay otra plataforma cercana y puede pasar a ella, cuando detectes que la plataforma a la que estas agarrado se acaba (por la derecha, como en tu imagen) tendras que echar otro rayo hacia la derecha para ver si hay otra plataforma cercana (a la distancia a la que llegue el player).... en caso de que si haya "algo" tendras que comprobar (con mas rayos) que esta alineada con la tuya y que tiene la misma altura... osea que puedes "saltar" a ella...

y para cada caso tendras que usar varios rayo, pensando como los lanzas (donde estan puestos (los rayos)) para detectar lo que quieres detectar...

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...