Jump to content
Sign in to follow this  
overbaal

Cortar objetos rapidamente

Recommended Posts

Estoy haciendo un proyecto con una amiga y tenemos un gran problema que nos está dando mucho dolor de cabeza.
Queremos cortar un objeto y obligar al jugador a cortarlo horizontalmente, vale hasta ahí bien, el problema viene cuando el jugador corta el objeto demasiado rápido no se realiza el corte y con ello la animación, eso pasa porque lo hemos hecho con colliders y a traves de ahi filtramos pero se pierde en algún frame la detección y no se realiza el corte.
 
Buscamos ayuda para ver si pueden darnos alguna idea o solución a esto, que a gran velocidad los objetos se corten y realicen su animación. al mismo tiempo que se obligue que sea horizontal y no vertical, o viceversa.
 
Gracias por tu tiempo espero con ansias tu respuesta :,)

Share this post


Link to post
Share on other sites

Imagino por la mecánica están intentando algo como fruit ninja.

Vamos para opción simple.

1 - El trazado de la línea tiene un Punto de inicio y uno final, estos puntos componen una línea recta.

Para saber si esa línea es horizontal puedes obtener la diferencia de los dos puntos en X, Y luego comparar si X es mayor a Y.

2 - Puedes lanzar un rayo desde el Punto A al B para obtener el objeto que esté colisionando con la línea.

Share this post


Link to post
Share on other sites
36 minutes ago, francoe1 said:

Imagino por la mecánica están intentando algo como fruit ninja.

Vamos para opción simple.

1 - El trazado de la línea tiene un Punto de inicio y uno final, estos puntos componen una línea recta.

Para saber si esa línea es horizontal puedes obtener la diferencia de los dos puntos en X, Y luego comparar si X es mayor a Y.

2 - Puedes lanzar un rayo desde el Punto A al B para obtener el objeto que esté colisionando con la línea.

Ya hemos probado eso, con raycast, pero tenemos un problema, como usamos Touch las coordenadas las cojo en touch begin y touch ended, pero nosotros queremos cortar sin levantar el dedo, en touch move y claro hasta que no levantas el dedo no recoge las coordenadas y no corta 😕

Edited by overbaal

Share this post


Link to post
Share on other sites

Puedes crear secciones con la magnitud.. 

Es decir, si la magnitud desde el punto de inicio hasta el actual es de más de 1 unidad entonces se crea la primer sección de la línea.

Share this post


Link to post
Share on other sites
3 hours ago, francoe1 said:

Puedes crear secciones con la magnitud.. 

Es decir, si la magnitud desde el punto de inicio hasta el actual es de más de 1 unidad entonces se crea la primer sección de la línea.

Vale probare esa idea haber que tal funciona, por ultimo una cosa, para que esa linea detecte que es horizontal al filtrar el objeto, a que te refieres con el el eje X sea mayor que Y que no lo entendi bien lo que dijiste en el primer comentario.

Gracias por contestar 😄

Share this post


Link to post
Share on other sites
On 12/9/2020 at 6:24 PM, overbaal said:

Vale probare esa idea haber que tal funciona, por ultimo una cosa, para que esa linea detecte que es horizontal al filtrar el objeto, a que te refieres con el el eje X sea mayor que Y que no lo entendi bien lo que dijiste en el primer comentario.

Gracias por contestar 😄

Buenas de nuevo, podrias ponerme un ejemplo? estoy intentando hacerlo pero no se como coger una magnitud desde el inicio hasta donde estoy actualmente moviendome, ambos son 2 Vector2, no se si quizas deberia crear otro vector y recoger alguna coordenada de cuando empiezo a donde estoy actualmente y sacar la magnitud?

 

EDITO: vale creo que lo he logrado, lo que hago es restar a la posicion actual la posicion donde empiezo y saco la magnitud con sqrMagnitude 

 

Screenshot_1.png

Edited by overbaal
  • Like 1

Share this post


Link to post
Share on other sites

Vale ahora me topado con otro problema que no se me ocurre como resolverlo, necesito que si comienzo a cortar (en horizontal) por la izquierda, el corte se ejecute si salgo por la derecha del objeto y viceversa. ¿Alguna idea? 😕

 

Porque claro el rayo se ejecuta por cada vez que la distancia entre A y B es superior a 1 por lo cual a veces el rayo se crea en mitad del objeto y no se me ocurre como coger por que lando comenzo el corte.

He probado a coger la frontera maxima en X del collider y booleanos y nada

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...