Jump to content

Recommended Posts

Buenasss

Mi problema es el siguiente:
Necesito agarrar puntos, yo a cada punto le puse un collider con un trigger enter que mande la señal, cuando Player pasa por encima se agarra el punto, algo simple.

PERO nose por que razon hay fotogramas que no los toma.... Cuando me va a pocos fps saltea puntos cuando me muevo... y no los agarra...
Aveces agarra y aveces no, como si dropeara fps y los saltea...
GIF6.gif GIF7.gif

Yo e jugado juegos que me van a re pocos fps PERO nunca SALTEO cosas o transpaso cosas... a que se debe esto? algo mal estoy haciendo, el player se mueve con un IEnumerator, es como un update no creo que el problema sea ese.

Cual puede ser la solucion?
Como puede ser que lso miles de juegos a 10 fps que e jugado jamas transpase cosas... por que sucede esto? Sera unity? o que mierddddd

Agradesco cualquier respuesta, abrazo

Aclaro: Cuando va bien en fps toma todo correctamente, el problema es cuando tengo pocos lo probe con varias cosas abiertas y me va asi de feo, pero no deberia transpasar cosas, deberia ir todo tosqueado pero que agarre los puntos...
 

Share this post


Link to post
Share on other sites
7 hours ago, enelmenu said:

Cual puede ser la solucion?
Como puede ser que lso miles de juegos a 10 fps que e jugado jamas transpase cosas... por que sucede esto? Sera unity? o que mierddddd

Hello Menú, aca me parece que pueden pasar dos cosas:

1 - quizás en un cuadro haya más de uno de esos cubitos que ingrese a tu collider, me guio por la forma que veo en los gifs, la verdad no se como serán en tu escena, por eso puede ser que estés comiendo uno solo de los dos? no se estoy tirando por tirar.

Probá en vez del Ontrigger (que la verdad no se si será o no el problema) esto:

https://docs.unity3d.com/ScriptReference/Physics2D.OverlapBoxAll.html

o por simpleza:

https://docs.unity3d.com/ScriptReference/Physics2D.OverlapCircleAll.html

(o podrías usar la versión non-alloc también y ya tenés un arreglo de RaycastHit2D)

Estos te devuelven el resultados de todos los colliders que interceptan, y así podrías "consumirlos".

2 - que de un cuadro a otro vas tan rapido que terminás salteando algunos

Si el problema es este podés asegurarte (y matar al problema 1 también) con el método de proyección (no lo inventé yo, sí el nombre), basicamente sabés que en un cuadro te movés un delta, entonces disparás un ray (o box, da igual, están uno atras de otro) hasta la posición que deberías ir (no el punto de llegada, sino el delta de pos del frame) una vez detectas y consumis los cuadraditos, te desplazás. Es un método muy común usado en character controllers también, para evitar atravesar paredes y esas cosas de la vida cotidiana.

Saludos

 

Share this post


Link to post
Share on other sites
hace 8 horas, lightbug said:

2 - que de un cuadro a otro vas tan rapido que terminás salteando algunos

Si el problema es este podés asegurarte (y matar al problema 1 también) con el método de proyección (no lo inventé yo, sí el nombre), basicamente sabés que en un cuadro te movés un delta, entonces disparás un ray (o box, da igual, están uno atras de otro) hasta la posición que deberías ir (no el punto de llegada, sino el delta de pos del frame) una vez detectas y consumis los cuadraditos, te desplazás. Es un método muy común usado en character controllers también, para evitar atravesar paredes y esas cosas de la vida cotidiana.

yo creo que sera eso....

yo en 3d lo soluciono con un raycast/spherecast... de la posicion antigua a la nueva...

"para evitar atravesar paredes y esas cosas de la vida cotidiana", jeje

porcierto, @enelmenu me gusta la estetica simple pero bonita que le has dado

Edited by Igor

Share this post


Link to post
Share on other sites

Cuando un objeto con un collider se salta a otro collider, en muchos casos es porque las escalas son inmensas o porque estas codificando en el Update en vez de en el FixedUpdate, revisa las escalas y si son grandes, reescala todo y ponlo a 1, porque eso da guerra si o si, el problema es que al ser grandes en un fotograma el objeto está antes de la colisión y en el siguiente se calcula  cuando ya ha pasado y no se produce. Seguro que o es esto o es lo que te ha dicho @Javiviplz

 

 

Share this post


Link to post
Share on other sites

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