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
Julio 10, 2017, 08:54:15 AM #15 Ultima modificación: Julio 10, 2017, 08:55:08 AM por Arthure
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 ...
   


Tiene delito  te dije lo del translate incluso antes de que pusieras el codigo ... no necesitaba verlo para imaginarme donde estaba el problema, tanto es asi que la clave. Y si lo que querias era saber porque te sucedia eso, pues deberias estar contento y agradecido porque ya lo sabes.
 
Pero una cosa es decirte el motivo por el que se produce esa anomalia, y otra muy distinta es molestarme en solucionartelo porque aunque en principio no tendria problema en escribirte el codigo correcto (que es tan solo una linea) y asi tu no deberias de molestarte en buscar informacion, se da el caso de que :
 


  1.    No te habias molestado ni tan solo en mirar el codigo de tu propio proyecto; entiendo que lo haya podido hacer un amigo y cuando funciona no haya necesidad de mirarlo (yo lo haria aunque solo fuera por aprender), pero cuando no funciona ... es una obligacion mirarlo e intentar buscar el problema por uno mismo antes de pedir que te lo solucionen.


  2.    Una vez que has mirado el codigo, los has tenido cuadrados para decir que "bueno, no se es un poco rara ..." tratandose de un codigo de seis lineas contadas ... cosa que no es mala de por si, pero si sorprendente viendo el codigo; esto lo digo porque si te dijera la solucion con fisicas, ya sea por rigidbody o charactercontroller, te podrias volver loco y no ibas a entender nada. Y al final entrariamos en un bucle infinito de que cada cosa que se te dijera para arreglarlo, se te deberian de explicar tres o cuatro cosas nuevas para que lo entendieras ... eso si te interesara aprender, y no quisieras solo un codigo correcto (que aun seria peor).


En conclusion, la mejor de las practicas si te interesa aprender es que ... cuando no te funcione algo como deseas, intentes buscar el problema por ti mismo y en el caso de que no puedas por la razon que sea entoces pides ayuda. Pero por favor, cuando pidas ayuda no evidencies tanto que no te has molestado ni en mirar el codigo, porque es algo ofensivo tanto para la gente que quiere ayudar como para la gente que intenta aprender con sus propios proyectos.
 
Toda la parrafada anterior es no siendo mal pensado y creyendo en tu buena intencion de aprender ... pero si lo que buscas es alguien que te realice el proyecto, por lo menos la parte de programacion, ponte en contacto conmigo : encantado te lo puedo hacer, ademas de la comodidad de saber que no me estaras preguntando (puesto que no te molestaras en ver el codigo) ... pero eso si, antes tendremos que llegar a un acuerdo economico

Cita de: Arthure date=1499669655... encantado te lo puedo hacer, ademas de la comodidad de saber que no me estaras preguntando (puesto que no te molestaras en ver el codigo) ...
   



Julio 10, 2017, 10:33:23 AM #17 Ultima modificación: Julio 10, 2017, 10:33:53 AM por Arthure
Cita de: lightbug date=1499672100http://i.imgur.com/2O8vjfv.gif" rel="external nofollow" title="Enlarge image">
   


jajajajaja ya se que suena a chiste @lightbug, pero mas de risa es el anuncio de Cofidis ... "entoces me prestas el dinero ? y no te preocupes, ya te lo ire devolviendo en comodos plazos".
 
Si estas estudiando mecanica, es logico que los que saben mas te enseñen si son tan amables porque a ellos lo mas logico es que un dia tambien les enseñaran ... nadie nace sabido. Pero si no tienes ninguna intencion de aprender lo mas minimo de mecanica y un dia se te estropea el coche, lo que a nadie se le ocurriria seria ir a un taller mecanico y decirle a los profesionales : "quiero que me arregleis el coche porque se le ha encendido el piloto de los frenos ... no hace falta que me digais la causa porque tampoco me importa, vosotros me lo arreglais y todos tan contentos ... ah y como es logico, olvidaros de ningun tipo de factura".
 
Y en otras ocasiones admito que me puedo pasar de mal pensado, pero esta vez cualquiera que lea los posts del chico, si una cosa le queda clara sera que molestarse en aprender no tiene ninguna intencion ... porque ya de entrada no miro el codigo de su propio proyecto para ver si por casualidad podia solucionarlo.

Julio 10, 2017, 12:05:27 PM #18 Ultima modificación: Julio 10, 2017, 12:06:22 PM por pioj
100% de acuerdo con @Arthure. Aquí no estamos para regalar nuestro tiempo a nadie, ni para hacerle los deberes. Os recuerdo a todos que UnitySpain es una Comunidad de SOPORTE, no de APRENDIZAJE.
 
Os toca aprender por vuestra cuenta a programar y conocer lo mínimo necesario para evitar estos casos. Esta Comunidad NO resolverá dudas de tipo básico...

Pues me voy de esta comunidad entonces porque nose, sinceramente a ver creo que se puede ser mas educado en la vida sinceramente en ayudar a alguien creo yo, porque esto parece como en un colegio que alguien cuando le preguntaban una duda al profe le decian que eso era facil o que ya lo habíamos dado cuando quiza no se acordaba y se metian con el, y nose creo yo que preguntar no pasa nada. Entiendo que cada uno hay que aprender por su cuenta, pero esto es como un examen que si te preguntan algo que tu no sabes por mucho que intentes pensar no te saldra lo solución, yo no digo que me hagas la script yo solo queria posibles soluciones, y vale lo del translate esta mal y es con el addforces, ayer empece a buscar y solamente vi un ejemplo que no tenia nada que con lo de mover un objeto. Y seguramente si me pongo a buscar quiza encuentre la solución. 2 no se que mania con lo de cobrar para programar en este foro de verdad, creo yo que si quereis cobrar pues mejor hacerlo en una empresa no por internet porque sinceramente yo no se quien puede pagar a alguien por internet si ni lo conoce de nada y no sabe de que es capaz. Nose pero sinceramente me voy de este foro porque la verdad de despues de esto ya no da ganas de hablar con nadie de aquí.

Julio 10, 2017, 01:58:19 PM #20 Ultima modificación: Julio 10, 2017, 01:58:33 PM por TheBullet
Cita de: ***m date=1499683266Pues me voy de esta comunidad entonces porque nose, sinceramente a ver creo que se puede ser mas educado en la vida sinceramente en ayudar a alguien creo yo, porque esto parece como en un colegio que alguien cuando le preguntaban una duda al profe le decian que eso era facil o que ya lo habíamos dado cuando quiza no se acordaba y se metian con el, y nose creo yo que preguntar no pasa nada. Entiendo que cada uno hay que aprender por su cuenta, pero esto es como un examen que si te preguntan algo que tu no sabes por mucho que intentes pensar no te saldra lo solución, yo no digo que me hagas la script yo solo queria posibles soluciones, y vale lo del translate esta mal y es con el addforces, ayer empece a buscar y solamente vi un ejemplo que no tenia nada que con lo de mover un objeto. Y seguramente si me pongo a buscar quiza encuentre la solución. 2 no se que mania con lo de cobrar para programar en este foro de verdad, creo yo que si quereis cobrar pues mejor hacerlo en una empresa no por internet porque sinceramente yo no se quien puede pagar a alguien por internet si ni lo conoce de nada y no sabe de que es capaz. Nose pero sinceramente me voy de este foro porque la verdad de despues de esto ya no da ganas de hablar con nadie de aquí.
   


Lo siento, pero esta respuesta me acaba de molestar bastante.
 
¿¿¿Que solo has encontrado un ejemplo??? Para empezar TU PROPIO CÓDIGO tiene un ejemplo de como se hace, podrías empezar por leer esas 8 lineas si no es mucho trabajo. Y si busco en Google hay infinidad de enlaces que hablan sobre el tema... https://www.google.es/search?q=unity+how+to+use+addforce&oq=unity+how+to+use+addforce&aqs=chrome..69i57j0j69i64.4428j0j7&sourceid=chrome&ie=UTF-8
 
Es algo super básico, que se aprende en los primeros días de empezar con Unity.
 
Si quieres aprender a hacer juegos en Unity te recomiendo que para empezar hagas todos los tutoriales oficiales que hay en la página de Unity (están ahí por algo), a partir de ahí pregunta lo que quieras. Yo soy el primero que pone ejemplos de código o ayuda a otros a corregir fallos en sus códigos, pero lo que no vamos a hacer es hacerte el código cuando tu ni siquiera lo has leído y sigues sin tener ningún interés en leerlo.
 
Y siento ser duro, pero si no sabes solucionar ese problema por ti solo con las pistas que te hemos dado, el objetivo de realizar un juego para 3ds es completamente inalcanzable.
 
Un saludo.
 
 

Cita de: ME VOY date=1499683266porque esto parece como en un colegio que alguien cuando le preguntaban una duda al profe le decian que eso era facil o que ya lo habíamos dado cuando quiza no se acordaba y se metian con el, y nose creo yo que preguntar no pasa nada. Entiendo que cada uno hay que aprender por su cuenta, pero esto es como un examen que si te preguntan algo que tu no sabes por mucho que intentes pensar no te saldra lo solución.
   


Pues la verdad es que es muy buen ejemplo por partida doble :
 


  •    en primer lugar, en tu colegio no se como seria, pero cuando yo estudiaba ... si le preguntabas al profesor, por norma general te respondia y te lo explicaba cien veces si era necesario hasta que se entendiera; pero cuando el profesor veia que no tenias interes en aprender, no estudiabas y encima no hacias los deberes ... con toda la razon del mundo te decia que te espabilaras, que no iba a estar explicando las cosas continuamente. Tambien se entendia, si habia interes por parte de un alumno se molestaba en enseñar pero cuando un alumno no tenia interes para que molestarse ?


  •    por otro lado, lo que dices del examen ... en tu caso deberias de haber dicho mas bien algo como : "esto es como cuando alguien va a un examen y no ha querido molestarse ni en abrir los libros, esperando que despues les digan todas las respuestas".


Cita de: ME VOY date=1499683266vale lo del translate esta mal y es con el addforces, ayer empece a buscar y solamente vi un ejemplo que no tenia nada que con lo de mover un objeto. Y seguramente si me pongo a buscar quiza encuentre la solución.
   


Como te ha dicho el compañero, con una simple busqueda en google tienes un monton de paginas que muestran informacion sobre el tema que te concierne ... por lo que decir que solo encontraste 1 pagina que hablase del tema suena a chiste, casi quedaria mejor decir que no te apetecia molestarte. Lo gracioso es que para el caso tampoco te hacia falta ni molestarte en realizar una busqueda en google, porque solo con la pagina oficial ya tienes mucha informacion al respecto (entre tutoriales oficiales y documentacion oficial, que es lo primero que habria que consultar siempre).
 
A modo de curiosidad, que encontraras solo un ejemplo y que no tenia nada que ver con mover un objeto ... podrias explicar sobre que era el ejemplo ? porque el AddForce creo que SIEMPRE es para mover objetos.
 
Cita de: ME VOY date=1499683266no se que mania con lo de cobrar para programar en este foro de verdad, creo yo que si quereis cobrar pues mejor hacerlo en una empresa no por internet porque sinceramente yo no se quien puede pagar a alguien por internet si ni lo conoce de nada y no sabe de que es capaz.
   


No te equivoques, no es una mania con cobrar para programar en este foro ... si te das una vuelta por el foro, ademas de que hubieras encontrado muchos ejemplos sobre mover objetos (los tienes a cientos) tambien habrias observado que la gente ayuda y nadie dice de cobrar.
 
Pero en tu caso es especial, porque se trata de hacerle el trabajo a alguien y no de ayudarlo ... la prueba esta en que no te habias molestado ni en leer el codigo de tu propio proyecto por si hayabas el fallo por ti mismo, en lugar de eso directamente dices lo que quieres conseguir y que venga alguien a hacerlo por ti para que no tengas que molestarte mucho ... y eso me parece el colmo de tener morro, aunque solo sea mi opinion personal.
 
El caso es que en ese plan, los demas tambien pueden tener el mismo morro y decirte que te hacen el trabajo pero no de gratis y si cuela ... porque una cosa es ayudar (que significaria que te has molestado y ha habido un esfuerzo por tu parte), y otra cosa es hacerte el trabajo (que es comodidad para tu persona, sin nada de esfuerzo).
 
Mucha gente paga a desarrolladores independientes, sean de internet o de donde quiera que sean ... otra cosa es que tu digas que no pagarias, que es muy respetable pero entoces ya sabes lo que te toca  aprender !!!

Julio 10, 2017, 05:23:35 PM #22 Ultima modificación: Julio 10, 2017, 05:25:22 PM por lightbug
Como siempre me voy y empieza el bardo jaja bueno a ver:
 
Cita de: ME VOY date=1499683266ayer empece a buscar y solamente vi un ejemplo que no tenia nada que con lo de mover un objeto.
   


Esa frase me causo mucha de gracia porque existen millones (seguramente me quede corto) de ejemplos de como usar un rigidbody, es mas la gente piensa que es mas "cool" "prendida" o como le llames en tu pais por usar un rigidbody dinamico, algo que estoy totalmente en contra, pero le mete rigidbody a todo, es decir que termina metiendo AddForce, es decir que hay mucha informacion.
 
Primero ni siquiera buscaste en el lugar que hay que buscar, lo cual me molesta, porque es algo tan pero tan basico y .. no te lo tomes a mal pero despues de estar ya meses en el foro este me di cuenta que el 95% no sabe buscar, no se si es algo que te lo da la universad o la viveza criolla como decimos aca, pero pocos tienen eso, y lo veo en otros sitios tambien, segui mi linea de pensamiento, no sabes que es ni que hace un addforce, barbaro, no hay problema en no saber, buscas en google "Unity add force" ---> primer link (Unity scrpting references) listo problema resuelto y con ejemplo y todo, pero buscaste en toda la red y no encontraste nada? algo y encima no era referente a un objeto? que movia entonces? calculo que hasta si buscabas en el mismo foro encontrabas. (pista: tu mismo codigo tiene uno como bien te menciono @TheBullet)
 
Cita de: ME VOY date=1499683266Entiendo que cada uno hay que aprender por su cuenta, pero esto es como un examen que si te preguntan algo que tu no sabes por mucho que intentes pensar no te saldra lo solución
   


Nadie te esta probando ni nada parecido, eso seria muy bajo, pero vos haces la consulta en este medio, yo ya vengo mentalizado que intentaste resolverlo (no como tu profesor sino como alguien que te puede dar una perspectiva diferente, aca nadie la tiene mas larga que nadie... y cuando miro el codigo + lo que decis unos renglones arriba de que no hay translate + que no viste lo del translate hasta que hiciste la captura me suena a lo siguiente "que se yo, mi amigo me paso esto, se lo llevo a los boludos del foro que me tiren las lineas y listo".
 
A ver, claramente no sos el unico que pasa por esto, pasa que en tu caso te vendiste mal con ese post de la imagen jaja, si te pones a hilar fino nadie consulta algo que valga la pena consultar, todo ya esta resuelto, en las referencias, blogs, tutoriales oficiales, youtube, etc,etc,etc, salvo casos puntuales o de perspectiva propia, lo que lleva a pedir distintas opiniones de algo, los mejores tipos de post en mi opinion.
 
Si te vas o no es problema tuyo, aunque te vas a ir un poquito mas sabio seguramente.
 
PD: Te queda bien ese nombre
 
 
 
 
 
 
 
 

Cita de: ME VOY date=1499683266Pues me voy de esta comunidad entonces porque nose,...
   


No hace falta que nadie se vaya. Lo que hace falta es preguntar las cosas de otra forma y ser más paciente... Ya te comentamos antes que, la particularidad que tiene esta Comunidad es que no es de aprendizaje, es de soporte de Unity: Se pide un mínimo de conocimientos de programación, lo justo para saber defenderse y buscarse la vida por uno mismo. De lo contrario, no podemos garantizar que las respuestas vayan a resolverte la duda...
 
Lo de "cobrar a la mínima", no tengo ni idea de qué es ese rumor, ni de cómo se ha esparcido... En cualquier caso puedo asegurar que eso no es verdad, y la prueba está precisamente en la cantidad de mensajes de "COLABORACIONES" que hay, en contraste con ofertas de trabajo.
 
 
 
 
 
Al resto, bajad ya los humos un poco, y retomemos la consulta de este usuario, a ver si se ha resuelto por fin, o no...

Julio 12, 2017, 03:30:06 PM #24 Ultima modificación: Julio 13, 2017, 03:57:21 AM por pioj
Rigidbody solo detecta colisiones si hace contacto. 
 
Si en un frame tu personaje o proyectil o lo que sea esta a un lado de un collider (sin tocarlo), y lo mueves una distancia tan grande que el objeto que has movido quedaria al otro lado del collider, pues la colision del rigidbody no se detecta
 
Te recomiendo que ademas del rigidbody uses Raycast, SphereCast o CapsuleCast, ...pero usa layers para evitar que el ray/sphere/capsuleCast no detecte el propio rigidbody del personaje
 
Hay que almazenar un Vector3 de la posicion anterior del personaje (aqui llamado puntoInicial) y saber la direccion en la que se ha desplazado (direccionDeDesplazamiento)
 
 
 
Ejemplo:
 



   
       
   
   
      RaycastHit hit;
   
   
      LayerMask lmask;
   
   
      lmask = ~ ( 1 >> 8); // todas las capas menos la ocho
   
   
      If (Phisics.SphereCast(Vector3 puntoInicial, float radioDeEsfera, Vector3 direccionDeDesplazamiento, out hit, float distanciaDeDesplazamiento, lmask)) {
   
   
             //do something
   
   
            // Porejemplo: recolocar el personaje alejandolo de la pared;
   
   
            transform.position = puntoInicial;
   
   
            transform.position += direccionDeDesplazamiento * (hit.distance - radioDeEsfera);
   
   
      }
   
   
       
   

[/quote]
 
 
 
Recomiendo que el radio usado aqui (radioDeEsfera) sea bastante menor que el radio del rigidbody (la mitad o una cuarta parte va bien) para que detecte la colision solo si el rigidbody falla 
 
Posdata: si no conozes la direccionDeDesplazamiento y la distanciaDeDesplazamiento, se pueden calcular facilmente con:
 



   
       
   
   
      Vector3 auxVec = transform.position - puntoInicial;
   
   
      Vector3 direccionDeDesplazamiento = auxVec.normalized;
   
   
      float distanciaDeDesplazamiento = auxVec.magnitude;
   
   
       
   

[/quote]
 
Ah! Un consejo para evitar problemas con Phisics, no pongas objetos con collider dentro de otro objeto con collider, es mejor agruparlos juntos dentro de un GameObject vacio

Etiquetas: