Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: jpercas en Enero 25, 2016, 04:21:56 PM

Título: Movimiento básico de coche en JavaScript
Publicado por: jpercas en Enero 25, 2016, 04:21:56 PM
Buenas!!Estoy iniciándome en JavaScript con Unity 3D Estoy haciendo un proyecto en el cual tengo un coche que el usuario únicamente debe poder controlar los los giros del coche. He encontrado este código por Internet para que el coche siempre vaya hacia adelante, pero cuando el coche esta mirando en el eje Y sigue avanzando hacia a pesar de tener un Rigidbody. Estoy totalmente en blanco a ver si hay alguien que pueda ayudar a resolverme el problema!Muchas gracias!! 
var speed : float = 50; 
var turnSpeed : float = 2;
 function Update () { 
   var turnAmount = Input.GetAxis("Horizontal")*turnSpeed;
 
   transform.Rotate(0,turnAmount,0); 
 
   transform.position += transform.forward * speed * Time.deltaTime;
}[/quote]
Título: Movimiento básico de coche en JavaScript
Publicado por: leocub58 en Enero 25, 2016, 04:55:37 PM
La gracia de aprender un lenguaje de programación es crear los códigos tú y entenderlos.Te aconsejo mirarte toda la documentación en Js de los rigidbody e intentarlo hacer tú solo.  
Si no te entendí mal, la cosa es que sale volando el vehículo no?, si eso es porque estas constantemente haciendo que el vehículo avanze en el eje Z y eso hace que al elevarse la parte de alante del vehículo siga subiendo.[/quote]
Título: Movimiento básico de coche en JavaScript
Publicado por: Arthure en Enero 25, 2016, 04:57:51 PM
Hola,antes de nada, permiteme recomendarte que si estas empezando con programacion (y tanto en C# como en "javascript" partes de cero) escojas C# porque te ofrecera muchas mas ventajas en comparacion a la otra alternativa : esta mas documentado, un lenguaje mucho mas estructurado y facil de leer (ademas de ser menos propenso a errores propios del programador), etc.Mi siguiente recomendacion es que siempre tengas clara, como minimo, la idea de lo que quieres conseguir ... dudo si es que no tienes claro el resultado que buscas o si es que te has explicado mal con tu "problema", pero en lo personal yo no he entendido lo que quieres decir con eso de cuando el coche esta mirando en el eje Y sigue avanzando. Por lo tanto, solo te puedo ayudar diciendote lo que hacen esas 3 lineas de codigo :var turnAmount = Input.GetAxis ("Horizontal") * turnSpeed;   // almacenas el valor del axis horizontal que sera un valor comprendido entre -1 y 1, si no has cambiado nada cuando pulsas flecha izquierda - derecha (o las teclas A - D), multiplicado por el valor de la variable turnSpeedtransform.Rotate (0, turnAmount, 0);   // rotas el objeto solo sobre su eje Y (por lo que nunca esta mirando hacia arrriba, entiendo que a eso te refieres con "mirando en el eje Y") tantos grados como indique la variable que has almacenado en la linea anteriortransform.position += transform.forward * speed * Time.deltaTime;   // esta linea supongo que sea la causante de tu problema; transladas el objeto hacia adelante, que no es lo mismo que "desplazarlo", la distancia que indica la variable Speed en relacion a Time.deltaTime. Moviendo los objetos asi, no importa que tu objeto tenga rigidbody ni nada ... atravesaras paredes o cualquier otra cosa que se te ponga por delante.No se hasta que punto eso puede tener que ver con tu problema, porque tampoco has explicado tu problema ... pero cuando utilizas transform.position lo que estas haciendo es "teletransportando" el objeto, no moviendolo, y por lo tanto no importa ningun obstaculo que haya entre las posiciones de origen y destino.
Título: Movimiento básico de coche en JavaScript
Publicado por: jpercas en Enero 25, 2016, 05:31:36 PM
 Antes que nada muchas gracias por responder a mi problema. Puede que no me haya explicado con claridad, el problema que tengo es que el circuito por el que va el coche tiene desnivel. Al finalizar una subida el coche continua hacia adelante en ese ángulo sin que le afecte mucho la gravedad, por lo tanto se pone a volar y pierdo el control (no sé si me he explicado mejor). Mi duda es como podria corregir este problema.El lenguaje lo empecé ha estudiar hace unos meses ya que tenia conocimientos previos de JavaScript pero al finalizar este proyecto me gustaría iniciar en C# que he visto que información de JS cuesta de encontrar. 
Título: Movimiento básico de coche en JavaScript
Publicado por: Arthure en Enero 25, 2016, 06:37:24 PM
Bueno, pues si es eso ya te he dicho porque se produce ese "error" ... pero si no entiendes el funcionamiento de tres lineas de codigo tan sencillas (que has copiado tu mismo) y ademas cuando te comentan porque se produce un comportamiento "erratico" sigues sin saber verlo, tengo una buena y mala noticia :La mala es que no se si empezaras con C# porque no se hasta que punto terminaras el proyecto, y la buena es que mas vale darse cuenta despues de unos meses que no despues de unos años xDComo sea, un saludo y suerte