Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Colisiones

Iniciado por ME VOY, Julio 08, 2017, 05:36:49 PM

Tema anterior - Siguiente tema
Hola buenas tengo un problema con las colisiones de unity 5.2.4, lo que pasa que mi personaje que es un cubo con rigidbody atraviesa objetos que tienen puesto el mesh collider, y estoy desesperado porque nose que hacer para que mi cubo no atraviese los objetos aun teniendo colliders, los colliders los tengo con mesh collider, pero pasa lo mismo con los demas. Alguna sugerencia? 
 
 


No se que es eso de cancave xd
yo tengo todos los colliders con mesh, y ya he comprobado porque pasa esto, y es porque el cubo al ir rapido atraviesa los objetos pero si va lento no, la cosa seria que a la velocidad que le puesto yo, no pasara a través de ellos. 

Para mover al cubo utilizas la funcion Translate ? porque ahi puede estar el "fallo"

No no lo tengo con transalte
 
Bueno nose es un poco rara porque la hizo un amigo te paso toda la script mejor
 
 
 

Cita de: ***m date=1499528209Alguna sugerencia? 
   


Si, dos, la primera nunca tomes prestado codigo ajeno porque te va a pasar lo que te pasa ahora, y la segunda actualiza! que haces con 5.2? Jajaj
 
Ahi estas usando translate, como que no, estas saltando con fisicas (bien) y despues te moves con translate en x con el movimiento vertical del mouse, tene cuidado ahi tendrias que estar modificando la velocidad o aplicando fuerzas, si vas a usar rigidbodies dinamicos es asi, si son kinematicos esta bien usar translate. Asi como está deberias moverlo y tendria que colisionar pero "mal", osea podria hacerlo como no, dependera del tipo de collider que tengas, aunque hacerlo asi esta mal aunque sea deberias ver en algunos casos el efecto, si es que no colisiona con nada de nada ya podria ser problema de capas (matriz de colisiones) es muy facil de verificar ponelo dinamico deja que caiga sobre el objeto en duda y listo. Es casi probable que sea el translate ese.

bueno no son scripts agenas son script de un amigo que tengo, y no actualizo porque la version la tengo en pro con licencia en esa version y con las demas nop. Yo de programación no tengo mucha idea, esta script la programo mi amigo asi que nose.
Nunca e programado nada con rigidbody no tengo ni idea como se programan las fisicas con eso
lo que pasa es que si voy a una velocidad lenta los colliders van bien, pero si voy algo rapido entonces traspasa los objetos
y si es lo del translate como lo canvio para moverlo con el rigidbody es que nose como se hace

Julio 09, 2017, 12:12:24 AM #7 Ultima modificación: Julio 09, 2017, 12:15:15 AM por Arthure
Puedo entender que lo haya programado tu amigo y que no sea codigo de tu propia cosecha ... puedo entender que nunca hayas programado nada con rigidbody ... puedo entender incluso que no tuvieras ni zorra idea de programacion, que no digo que sea el caso eh !!!
 
Pero que te dijera que el problema podia ser el Translate (sin necesidad de haber visto el codigo) y que tu con el codigo delante tuyo y siendo solo 6 tristes lineas digas que no estas utilizando la funcion Translate ... una de dos : o no sabemos leer, o de programacion controlamos menos que lo basico.
 
Ahora que ya sabes donde esta el "fallo" ... tengo dos dudas : la primera es como pagaste una licencia pro teniendo ese nivel de Unity ? La segunda es, utilizar el valor x en la posicion de y al igual que el valor z en la posicion de x dentro de Rotate y Translate respectivamente ... es una nueva tecnica de despiste ?

Julio 09, 2017, 02:57:28 AM #8 Ultima modificación: Julio 09, 2017, 02:58:46 AM por lightbug
Cita de: ***m date=1499540668lo que pasa es que si voy a una velocidad lenta los colliders van bien, pero si voy algo rapido entonces traspasa los objetos
   


AH es lo que te decia arriba, deberia andar pero "mal".
 
Si el codigo es de Donald Trump o de tu amigo sigue siendo ajeno, es decir algo que no hiciste por tu cuenta, lo que lleva a futuros problemas casi siempre, salvo que existe una coordinacion general ejemplo un grupo de expertos haciendo un juego, pero para nuestro nivel (generalmente en solitario) siempre es mejor ser los autores de las lineas, te va a ahorrar problemas y te va a enseñar.
 
Te iba a decir algo pero Arthure lo dijo en las exactas palabras como puede ser que tengas pro o (por lo menos que beneficios le estas sacando?) si es que en un script tan pero taaan facil no puedas encontrar el simple translate que esta delante de tus narices. --> No te lo tomes a mal pero hay una base que te estas saltando, todos nos saltamos esa base claramente (las ganas ganan), no es que hicimos 200 ejercicios de libro para llegar "expertos" (entre importantes comillas) a Unity, pero sabe medirte, sobre todo si vas a realizar una consulta, queda hasta insultante. Aunque es valido consultar algo como por ej "porque al mover con el translate no colisiona el rigidbody? ... "
 
Y te digo, pro = personal hablando de especificaciones del motor, salvo la splash screen del comienzo y el skin negro me parece que no tenes mas diferencia, asi que si lo estas haciendo por motivos didacticos o incluso queres vender tu juego AAA (taka taka despues pero no es gran cosa) si vas con personal esta genial. Y de 5.2 a 5.6 tenes cambios, lindos cambios, creo que en la Api de programacion tambien, ademas podes incorporar assets nuevos (por motivos de compatibilidad).
 
Cita de: Arthure date=1499551944La segunda es, utilizar el valor x en la posicion de y al igual que el valor z en la posicion de x dentro de Rotate y Translate respectivamente ... es una nueva tecnica de despiste ?
   


Es la nueva tecnica Troll Arthure, estas fuera de onda, antes se compilaba el source y te daban unos y ceros pelados, ahora van por todo y te dan el source en la cara, pero es tan mareante que es imposible leerlo
 
 

Cita de: Arthure date=1499551944Puedo entender que lo haya programado tu amigo y que no sea codigo de tu propia cosecha ... puedo entender que nunca hayas programado nada con rigidbody ... puedo entender incluso que no tuvieras ni zorra idea de programacion, que no digo que sea el caso eh !!!
   
   
      Pero que te dijera que el problema podia ser el Translate (sin necesidad de haber visto el codigo) y que tu con el codigo delante tuyo y siendo solo 6 tristes lineas digas que no estas utilizando la funcion Translate ... una de dos : o no sabemos leer, o de programacion controlamos menos que lo basico.
   
   
      Ahora que ya sabes donde esta el "fallo" ... tengo dos dudas : la primera es como pagaste una licencia pro teniendo ese nivel de Unity ? La segunda es, utilizar el valor x en la posicion de y al igual que el valor z en la posicion de x dentro de Rotate y Translate respectivamente ... es una nueva tecnica de despiste ?
   


Jaja! Hacía tiempo que no leía una respuesta tuya de estas míticas. Ya las echaba de menos. Solo falta que venga pioj a pedirte calma xD
 
 
 
Cita de: ***m date=1499540668bueno no son scripts agenas son script de un amigo que tengo, y no actualizo porque la version la tengo en pro con licencia en esa version y con las demas nop. Yo de programación no tengo mucha idea, esta script la programo mi amigo asi que nose.
   
   
      Nunca e programado nada con rigidbody no tengo ni idea como se programan las fisicas con eso
   
   
      lo que pasa es que si voy a una velocidad lenta los colliders van bien, pero si voy algo rapido entonces traspasa los objetos
   
   
      y si es lo del translate como lo canvio para moverlo con el rigidbody es que nose como se hace
   


Tienes que cambiar los translates por AddForce para el movimento y AddTorque para la rotación. Tienes un ejemplo de como se hace en tu propio código, aunque lo del GetComponent a cada frame duele a la vista.
 
Lo de utilizar la 5.2 por la licencia es una tontería. Es mucho mejor la última versión gratis que esa que tienes, a parte con el nivel que tienes ahora mismo la licencia no te sirve de nada, solo para el skin oscuro, que se agradece cuando estas todo el dia con unity pero que igualmente no compensa vs trabajar con una versión anticuada.

A ver para que quede claro todo, no vi lo del translate, hasta que hice la captura, luego tengo la versión pro porque conseguí la licencia por internet no pirata, pero no digamos pagando sino que me la dieron. Ademas que no voy a cambiar lo de esa versión cuando ya tenemos mas de un codigo programado con esa versión, y ya tenemos varias cosas hechas allí que al actualizar si van a perder y paso completamente de poner todo de nuevo.
 
Ya se que las nuevas versiones son mejores y tal pero ahora que ya empece a hacer cosas me da mucha flojera y tambien otro motivo es porque en esta version puedo hacer juegos para 3ds que siempre he hacia ilusiona hacer un juego para una consola de nintendo.
 
Y bueno repito eso lo programo mi amigo nose en que se baso para hacerlo de esa forma.
 
 
 
Y bueno no digo esto con un mal tono porque por chat lo puede parecer

Cita de: ***m date=1499614696A ver para que quede claro todo, no vi lo del translate, hasta que hice la captura, luego tengo la versión pro porque conseguí la licencia por internet no pirata, pero no digamos pagando sino que me la dieron. Ademas que no voy a cambiar lo de esa versión cuando ya tenemos mas de un codigo programado con esa versión, y ya tenemos varias cosas hechas allí que al actualizar si van a perder y paso completamente de poner todo de nuevo.
   
   
      Ya se que las nuevas versiones son mejores y tal pero ahora que ya empece a hacer cosas me da mucha flojera y tambien otro motivo es porque en esta version puedo hacer juegos para 3ds que siempre he hacia ilusiona hacer un juego para una consola de nintendo.
   
   
      Y bueno repito eso lo programo mi amigo nose en que se baso para hacerlo de esa forma.
   
   
       
   
   
      Y bueno no digo esto con un mal tono porque por chat lo puede parecer
   


 
 
Cuando actualizas no se pierde el código que has hecho, como mucho tendrás que hacer pequeños retoques y dudo que sean demasiados ya que por lo que estás preguntando tu proyecto no debe ser complejo. Yo estoy en un proyecto grande, con el que ya llevo casi un año y medio y siempre intento actualizar a la última versión, no me parece que trabajar con versiones antiguas sea una buena idea. Y que yo sepa, se pueden hacer builds para 3ds con la última versión igual que con la que tu tienes.

no no se puede porque no tengo la licencia con otras versiones y la licencia que da nintendo que es la que tengo solo va hasta la 5.4
Pero bueno que a mi lo unico que me importa es solucionar eso de las colisiones y como mucho solo tu me has dicho que cambie lo del translate por addforces que eso no lo sabia y ya esta solo eso era mi duda pero es que si vamos a estar hablando todo el rato que si tengo que actualizar, que si mi pregunta no es muy coherente y de que tengo un nivel muy bajo de programación pues nose pero no creo que eso me ayude mucho

Cita de: ***m date=1499620975no no se puede porque no tengo la licencia con otras versiones y la licencia que da nintendo que es la que tengo solo va hasta la 5.4
   
   
      Pero bueno que a mi lo unico que me importa es solucionar eso de las colisiones y como mucho solo tu me has dicho que cambie lo del translate por addforces que eso no lo sabia y ya esta solo eso era mi duda pero es que si vamos a estar hablando todo el rato que si tengo que actualizar, que si mi pregunta no es muy coherente y de que tengo un nivel muy bajo de programación pues nose pero no creo que eso me ayude mucho
   


Los demás te han indicado que utilizar translate no es correcto. Yo solo te he indicado que tienes que hacer lo mismo que estás haciendo para que el personaje salte, o sea utilizando AddForce. Tienes un ejemplo de como se hace en tu mismo código, y entiendo que con las indicaciones que te he dado eres capaz de solucionarlo por ti solo mirando tu código y mirando la documentación de Unity para el AddTorque y de hecho, yo ya lo daba por solucionado.
 
Si los foreros han hecho un poco de broma es porque molesta un poco que pida ayuda alguien que parece que no se haya leído el código que no le funciona, dijiste que no había translate, lo hay y son solo 8 lineas... También porque estás mezclando las posiciones de las x, y, z (Vector3(x,y,z), en tu código hay cosas como Vector3(z,0,0)).

Cita de: ***m date=1499620975Pero bueno que a mi lo unico que me importa es solucionar eso de las colisiones y como mucho solo tu me has dicho que cambie lo del translate por addforces que eso no lo sabia y ya esta solo eso era mi duda pero es que si vamos a estar hablando todo el rato que si tengo que actualizar, que si mi pregunta no es muy coherente y de que tengo un nivel muy bajo de programación pues nose pero no creo que eso me ayude mucho
   


No, todos hasta ahora te venimos diciendo lo del translate.
 
 
 
Cita de: ***m date=1499614696A ver para que quede claro todo, no vi lo del translate, hasta que hice la captura
   


Osea que hiciste la consulta sin ni siquiera abrir el script? (que te pasaron o no, no importa) Y bueno si se te pasó vaya y pase, lo unico es que eran como 4 lineas de codigo no se te puede pasar ni aunque quieras.
 
 
 
Cita de: ***m date=1499614696Ademas que no voy a cambiar lo de esa versión cuando ya tenemos mas de un codigo programado con esa versión, y ya tenemos varias cosas hechas allí que al actualizar si van a perder y paso completamente de poner todo de nuevo.
   


Lo de la actualizacion yo te lo mencione a modo de broma, cada cual hace de su culo un florero si te gusta 3.5, 4.6 o 2017.1 es problema tuyo. Ademas no se pierda nada, sino nadie actualizaria jamas. Igual esto no importa, , lo que importa es el translate, cambialo por algo equivalente al mundo fisico y listo.
 
 

Etiquetas: