Bienvenidos a la segunda parte del cálculo de trayectorias.
Volvamos a nuestro script de disparo, donde también, mientras estamos aquí en la parte superior de este archivo,
vamos a añadir en un flotador para la velocidad de nuestra bala.
Y vamos a establecer que a 15 inicialmente porque vamos a estar haciendo la velocidad con el sistema de física en la unidad en lugar
de calcular como lo hicimos antes de esto.
Tenemos un valor diferente aquí arriba para empezar.
Bien, es hora de calcular el ángulo en el que tenemos que poner nuestra torreta.
Así que vamos a crear un nuevo método y vamos a crear un flotador y vamos a crear un flotador con el signo de
interrogación en él así para el retorno, lo que nos permitirá devolver un null.
¿Recuerdas la fórmula que vamos a hacer?
Bien, puede devolver ángulos, un ángulo alto, un ángulo bajo o no encontrar absolutamente ningún ángulo, lo que significa
que no es posible conseguir un ángulo que dé en el blanco.
Ahora vamos a llamar a esto calcular el ángulo y vamos a pasar a través de un bool para baja para decir si queremos
obtener un ángulo bajo o alto de vuelta de nuestro cálculo, porque podríamos llegar a los valores como vamos a ver en un momento,
al igual que nuestros cuadráticos que estábamos viendo anteriormente, donde usted puede tener dos soluciones.
Aquí nos pasa lo mismo.
De hecho, todo esto viene de una cuadratura de todos modos.
Y si echas un vistazo a esta solución con la que estamos trabajando, se parece mucho a la
composición de la raíz de una ecuación cuadrática.
Por lo tanto, tenemos ese más menos ahí.
Nos va a dar dos valores posibles, un valor o ningún valor.
Bien, entonces vamos al vector tres, objetivo d, i r.
Así que necesitamos la dirección de nuestro objetivo, que es nuestro enemigo.
Así que el punto enemigo transforma la posición del punto.
Menos este punto transforman la posición del punto.
Float y es igual a target d r dot y.
Y luego vamos a agarrar eso y ponerlo en cero, porque sólo estamos interesados en la dirección
del objetivo en el valor x z porque está en una superficie plana.
Y como hicimos con la rotación de la mirada, no levantamos el tanque del suelo.
Bien, entonces el objetivo querido punto y es igual a cero.
Si es así, dejémoslo en cero.
De acuerdo.
Así que float x es igual a la magnitud del punto di r objetivo.
Y todas estas son variables que entran en nuestra ecuación.
Gravedad del flotador.
¿Puedes recordar qué es la gravedad?
Según los cálculos que hicimos antes del 9. 8 metros por segundo al cuadrado y de hecho lo voy a tener
en positivo esta vez para salvarnos, negándolo más tarde que es.
Así que la flotación s al cuadrado es igual a la velocidad de la bala multiplicada por la velocidad de la bala.
Así que la velocidad al cuadrado.
Y entonces podemos calcular la ecuación que está debajo de la raíz cuadrada allí.
Así que queremos flotar y luego queremos bajo la raíz cuadrada es igual.
Y este es tu reto.
¿Puede reunir esta fórmula?
Así que sólo queremos que baje lo que está debajo de esa raíz cuadrada en esa ecuación.
Esto es igual aquí, pausa el video ahora dale una oportunidad.
Y cuando volvamos, lo repasaré contigo.
Bien para empezar, vamos a s al cuadrado multiplicado por S al cuadrado menos la gravedad multiplicado por entre paréntesis
la gravedad multiplicado por x multiplicado por x más dos multiplicado por y multiplicado por s al cuadrado.
De acuerdo.
¿Cómo te fue con eso?
Bastante en esa ecuación.
Eso es todo lo que hay debajo de la raíz cuadrada.
Así que ahora que tenemos eso en una variable, podemos hacer los otros cálculos.
Así que queremos entrar aquí.
Si bajo la raíz cuadrada es mayor o igual a cero F, entonces la raíz flotante es igual a la raíz cuadrada de math f dot de bajo la raíz
cuadrada porque no se puede obtener una raíz cuadrada de un número negativo.
Bueno, se puede, pero eso es entrar en números imaginarios, que no es a lo que vamos ahora.
Así que el ángulo alto flotante es igual a la raíz cuadrada s más la raíz y luego el ángulo bajo flotante es igual a s cuadrado
menos la raíz.
Entonces si lo.
Así que si queremos el ángulo bajo, entonces devolveremos math f dot a10 al cuadrado.
Así que en realidad hacemos el tan inverso del resultado que obtuvimos, que es nuestro ángulo bajo y la gravedad multiplicada
por X, que estará en radianes.
Así que multiplicaremos eso por math f radians dos grados o devolveremos math f 18 al cuadrado, la gravedad del ángulo
alto multiplicada por x y de nuevo multiplicada por math f rad dos deg.
De lo contrario, si tenemos un negativo bajo esa raíz cuadrada del seno, vamos a volver.
No.
De acuerdo.
Déjame arreglar ese error ortográfico y ya está.
Así que ahí está nuestra fórmula para calcular el ángulo.
Ahora que tenemos nuestro ángulo, tenemos que ajustar nuestra torreta a eso.
Ahora lo que tienes que hacer es traer la base de la torreta.
Recuerda que la torreta del tanque verde es de donde salen las balas.
Tendrás que añadir esto, que acabo de hacer ahora mismo.
Así que añadir en una transformación pública para la base de la torreta y queremos guardar, voltear de nuevo
en la unidad y seleccionar el tanque verde y luego obtener el objeto padre que está sosteniendo en su marcador de torreta poco que
ha creado y arrastrar y soltar que en la base de la torreta.
Así que es básicamente el mismo bit que programamos en el tanque rojo que podía moverse hacia arriba y hacia abajo
con las teclas T y G.
De acuerdo.
Así que ahora podemos entrar y programar que se mueva.
Así que vamos a crear un nuevo método aquí abajo y para crear bala, lo llamaremos void, rotate,
turret.
Y dentro de aquí lo llamaremos calcular el ángulo.
Así que queremos un ángulo de signo de interrogación flotante es igual a calcular el ángulo y vamos a decir que sí, queremos la baja.
Y entonces si el ángulo no es igual a null, entonces dentro de aquí vamos a torreta
base punto local ángulos de euler es igual a nuevo vector tres 360 f menos el 360 F menos float el ángulo 0f0f.
Así que básicamente estamos girando alrededor de nuestro eje x, sólo teniendo en cuenta la rotación
que ya está en eso.
De acuerdo.
Así que eso es prácticamente todo lo que necesitamos.
Sólo tenemos que llamar a la torreta giratoria.
Así que vamos a bajar en nuestra actualización después de que estamos tipo de mirar y poner la torreta de rotación en allí para que podamos guardar esto ahora
y realmente probarlo.
Así que vuelvan a la unidad y pulsaremos el play.
Mueve tu tanque rojo y.
Observa cómo la torreta del tanque verde cambia de cara o se ajusta para disparar al tanque rojo.
Cuando volvamos en el próximo vídeo, daremos los últimos toques a esto, que es conseguir que las balas
se desplacen lo suficiente como para que todo el sistema funcione en conjunto para que las balas impacten
en el tanque según el ángulo en que salgan de la torreta.