Open alijahanmard opened 8 years ago
Estás mezclando varias cosas:
Primero, Tu gameobject se mueve, pero no con la velocidad que introduces en el inspector, sino con v * direction.magnitude
y tu direction.magnitude
no vale 1.
El vector al que llamas direction
es en realidad la distancia entre tu posición y la posición por la que debes pasar, así que deberías llamarla distance
para no confundirte.
A la hora de calcular la velocidad, necesitas un vector de dirección. El vector distancia tiene la dirección correcta, pero no la longitud correcta.
Por eso lo que hacemos es obtener:
direction = distance.normalized;
Ahora, como direction
tiene longittud uno podemos multiplicarlo por v
para obtener el vector velocity
. Así tendrá la dirección correcta y una longitud igual a v
:
velocity = direction * v;
Esta velocidad estaría bien calculada.
Segundo, La velocidad en este ejercicio es constante. Es decir, no cambia con el tiempo. O sea, que deberías calcularla en el Start() y sólo usarla en el Update().
Lo que te está ocurriendo es que cuando el cubo sobrepasa el punto por el que ha de pasar, tu vector direction
se invierte y el cubo retrocede. En el siguiente fotograma se ha vuelto a pasar al retroceder y direction
se vuelve a invertir y así sucesivamente. Si te acercas podrás ver tu cubo oscilando rápidamente alrededor del punto por el que ha de pasar.
CUIDADO!!!: En este ejercicio tienes que controlar el movimiento del cubo desde un sctipt que no está en el cubo. Deberías tener el script en un gameobject vacío llamado Vectores19, y por tanto deberías cambiar el código en consecuencia.
Hola! Intento hacer el ejercicio 19, y tengo problema con normalizar el vector para que la velocidad que defino no afecte a la magnitud del vector.
Ahora mismo con este codigo funciona bien pero el objeto se para al llegar a las cordenadas de "pasaPosition". para normalizar la direccion lo que se me ocurre es añadir:
this.direction = this.direction.normalized;
no me da error, pero tampoco soluciona el problema. igual me estoy equivocando en todo xD.Gracias.