Noticias

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

Temas recientes

Modificar potencia de la velocidad sin modificar la direccion

Iniciado por racso2006, Octubre 17, 2019, 05:40:44 PM

Tema anterior - Siguiente tema
Octubre 17, 2019, 05:40:44 PM Ultima modificación: Octubre 17, 2019, 11:55:01 PM por racso2006
Buenas
 
estoy haciendo un juego, donde según donde tengas puesto la mano derecha (ya que es un juego de VR) la pelota tiene que ir en la posición opuesta (teniendo en cuenta que la pelota tiene el movimiento x congelado).

Esto es algo sencillo que ya tengo hecho con el siguiente codigo:
 

var PosPelota = nuevo Vector3 ( Pelota . transformación . posición . x , Pelota . transformación . posición . y , Pelota . transformación . posición . z ); // posicion pelota      
 var
PosManoDer = new Vector3 ( ManoDer . transform . position . x , ManoDer . transform .
posición . y , ManoDer . transformar . posición . z ); // posicion mano derecha

 directionDer
= ( PosManoDer - PosPelota ). normalizado ; // indicar la dirección que hay entre la mano y la pelota
 directionDer
. y = directionDer . y * (- 1 ); // invertir direccion
 directionDer
. z = directionDer . z * (- 1 ); // invertir direccion Pelota . GetComponent < Cuerpo rígido > (). velocidad = direcciónDer *

  PotenciaPelota ; // darle velocidad a la pelota en la dirección que calculamos posteriormente (de la mano a la pelota)
               

 

Lo que me ocurre con este código es la dirección de la pelota venta correctamente, pero según lo lejos o lo cerca que tengas la mano de la pelota dicha pelota saldrá con más velocidad o con menos.

Mi duda es saber cómo hacerlo para mantener la dirección de la pelota igual, pero que velocidad a la venta del mar siempre la que le indico en la variable "PotenciaPelota".

No creo que sea algo extremadamente complicado, pero llevo un tiempo pensándolo y me he atascado.

Alguien me podría asesorar?

Muchas gracias de antemano.

 

Claro. Necesita más velocidad para llegar a un punto más lejano.  Están actuando las físicas. Nunca me cansaré de decirlo, pero esa manera no se debe utilizar. No lo digo yo, está en manual de Unity:
 
https://docs.unity3d.com/ScriptReference/Rigidbody-velocity.html
 
Tienes que utilizar algunas de las funciones del rb e ir ajustando los factores debidos a la distancia y al resto de valores del rigibdody (mass, frinction, bla bla). Si no, es mejor no utilziar físicas.

Octubre 17, 2019, 11:27:35 PM #2 Ultima modificación: Octubre 17, 2019, 11:57:56 PM por racso2006
no terminaba de entender a lo que te referias, pero ya lo he entendido, te referias a que no modifique la velocidad sino que agrege una fuerza con addforce no?


haciendo esto se me ha solucionado el problema, muchas gracias
 


edit:


soy nuevo en el foro y no se bien como va.


ya esta solucionado y quiero poner el answered que veo que tienen puesto otros post solucionados pero no veo como ponerlo correctamente
 
 

Qué bien que lo hayas entendido. A veces explicando las cosas se sobre entienden otras, y no es así. Yo me conformo con un like :D

Etiquetas: