Bienvenido a esta sección.
Mirando la física de los objetos, actualmente estamos tratando con la velocidad que hemos puesto en esta bala.
Ahora lo que quiero que hagas con él, o el caparazón, como lo hemos llamado aquí, es arrastrar y
soltar una copia de él en tu activo y crear un prefabricado original.
A continuación, podemos volver a abrir el código de nuestros tanques.
No necesitamos guardar esta escena a menos que quieras escribir.
Así que vamos a empezar escribiendo un script que vamos a llamar Fire Shell.
Así que ve a crear y queremos un C sharp llamado Fire Shell.
Y aquí básicamente necesitamos instanciar una copia de la cáscara y también posicionarla donde queremos que
salga.
Ahora, si haces doble clic en tu tanque para acercarlo, quieres que venga de esta posición de aquí,
no de la posición del tanque, porque la posición global del tanque o su origen para el modelo está realmente
sentado aquí abajo.
Así que no quieres que las balas salgan de ahí, las quieres aquí arriba.
Lo que podemos hacer en este caso es añadir un pequeño marcador.
Así que vamos a ir a nuestro tanque, vamos a hacer clic derecho y crear un vacío.
Y luego con ese vacío lo llamaremos algo así como torreta.
Y luego tienes que llevarlo a donde quieras.
Así que selecciónalo y luego muévelo así.
Ahora bien, si está en un lugar extraño, entonces asegúrese de que, en primer lugar, 000 aquí para que sea sentado en la misma posición
de los tanques, 000 entonces usted puede realmente seleccionar y sólo mover hacia arriba y que le permitirá tipo de ponerlo
justo ahí.
Ahora, no queremos que se incline por el momento.
Queremos disparar la bala en dirección recta.
Así que seguiremos en horizontal con ese eje Z.
De acuerdo.
Ahora, antes de pasar al código para disparar una cáscara, si usted recuerda en Move Shell que en realidad estamos
subiendo la pantalla un poco, así como a través.
Sólo queremos volver a cambiar eso para ir a través de la pantalla como eso y luego podemos abrir nuestro código de
shell de fuego.
Así que vamos a agarrar eso.
Así que aquí queremos añadir en la bala.
Así que queremos un objeto de juego público bala y un objeto de juego público torreta.
De acuerdo.
Entonces en el inicio, por ahora, lo que haremos es ir.
Instanciar una bala en la torreta punto de transformación.
La posición de pensamiento y la rotación del punto de transformación de la torreta para asegurarse de que va a estar mirando en la dirección correcta.
Y entonces deletreémoslo correctamente.
Así que guarda eso.
Ahora vamos a volver a la unidad.
Vamos a arrastrar y soltar el proyectil de fuego sobre el tanque en el inspector.
Y luego tienes esta bala.
Usted quiere agarrar su cáscara de la carpeta de activos, poner eso allí, y entonces usted quiere que su torreta
arrastrar la torreta que está en el tanque a través de allí.
De acuerdo.
Ahora, cuando juguemos, el tanque disparará realmente una bala.
Así que si vamos a jugar así, puedes ver que está disparando una bala muy lentamente, un metro por segundo a través de la pantalla,
y vamos a acelerar eso un poco más tarde.
De acuerdo.
Así que dejemos de jugar para empezar.
Vamos a girar el tanque rojo.
Así que sólo hay que seleccionar el tanque enemigo y luego sólo hay que pulsar la tecla y sólo hay que rotarlo.
Así que va a ser una especie de movimiento en la distancia como eso.
Luego queremos editar el script que está en ese tanque.
Así que busquemos el script de la unidad, abrámoslo.
Ahora, este es el código que le permite conducir, pero en realidad queremos tipo de automatizarlo para
empezar.
Así que, básicamente, la traducción transformada que está aquí abajo, haz una copia de eso y la pondremos
ahí abajo.
Vamos a comentar el otro y en esta traducción para el Zed, sólo vamos a hacer una velocidad multiplicada
por el tiempo punto delta y que va a continuación, sólo proyectar ese tanque hacia adelante.
También es posible que desee comentar el rotar sólo para que no accidentalmente rotarlo.
Bien, ahora si guardamos eso y le damos al play para probarlo, nuestro tanque rojo saldrá en esa dirección en
la distancia mientras disparamos por aquí.
De acuerdo.
Un poco rápido creo que para mi gusto.
Así que voy a cambiar esto, la velocidad a uno inicialmente.
De acuerdo.
Así que ahora podemos volver a nuestra cáscara de fuego y añadir algo de código allí para empezar a disparar la bala.
Y lo haremos cuando pulsemos la barra espaciadora.
Así que vamos.
Si el input get key down es key code dot space, entonces instanciaremos la bala.
Bien, entonces cambiaremos este nombre de inicio aquí a crear bala y aquí abajo ejecutaremos crear.
Lo que queremos hacer ahora es determinar el ángulo al que debe estar orientado el tanque antes de crear
la bala.
Así que aquí vamos a poner calcular la trayectoria y crear aquí.
Vacío, calcula la trayectoria.
Para resolver este problema, primero debemos determinar un tiempo de impacto basado en el momento en el que la bala y
el objetivo estarán en el mismo lugar.
La trayectoria de las balas se define por su velocidad.
La trayectoria del objetivo está definida por su posición más su velocidad.
El momento en que estarán en el mismo lugar depende de la hora.
Por lo tanto, multiplicamos cada uno de ellos por el tiempo.
Ahora, después de ese tiempo, el objetivo y la bala están en el mismo lugar.
Eso significa que estarán a la misma distancia del tirador.
Lo expresamos como s multiplicado por T es igual a p más v multiplicado por t.
Entonces, ¿qué hacemos con esta ecuación?
Bien, tenemos que resolver para T y esto significa involucrar a algunos cuadráticos y resolver una ecuación
cuadrática.
Ahora bien, si no estás familiarizado con las cuadráticas, no tenemos suficiente tiempo en este vídeo para repasarlas.
Y te sugiero que vayas y leas este enlace de Wikipedia aquí y tal vez también repasar esa matemática si
echas un vistazo en YouTube a algunas enseñanzas sobre eso.
De todos modos, de forma muy sencilla y directa, lo que vamos a hacer aquí es resolver esto.
En primer lugar, vamos a cuadrar ambos lados.
De acuerdo.
Y entonces eso nos da la siguiente línea, que es el producto de P consigo mismo más dos P producto v, t más v producto
punto consigo mismo y t al cuadrado es igual a s al cuadrado multiplicado por t al cuadrado.
Ahora bien, si haces un cuadrado de un vector, en realidad es lo mismo que un producto punto.
Así que de ahí han salido esos productos DOT.
Ahora en la siguiente línea, básicamente estamos obteniendo el factor S al cuadrado T al otro lado de la ecuación.
Así que todo puede ser igual a cero y mezclar eso con los valores que ya tenemos.
Bien, esta es nuestra ecuación cuadrática y ahora tenemos que resolverla, lo haremos en código.
Pero antes de hacerlo, sólo quiero señalar lo que todos los nombres de las variables en el código
van a equivaler a que salen de esta ecuación.
Así que la forma general de una ecuación cuadrática es A X al cuadrado más B, x más C es igual a cero.
Tenemos nuestra ecuación en ese formato.
Así que si echas un vistazo, puedes ver dónde está la x al cuadrado.
Así que ese es el último término allí.
En este caso, T es nuestro valor x porque es el valor que estamos tratando de encontrar.
B x es el segundo término de la ecuación.
Entonces C es la del principio, el producto de P y P.
Ahora, para resolver esto y encontrar lo que es T con una ecuación cuadrática, hay dos rutas para ello, y en este
caso podemos usar la fórmula que se muestra aquí donde X es igual a menos B más menos la raíz cuadrada de B al cuadrado menos
cuatro ac sobre dos A.
Así que, básicamente, vamos a tomar cada uno de los diferentes elementos de
esa fórmula que equivalen a A, B y C y los vamos a introducir en la raíz para resolver X o, en nuestro caso, T.
Y eso nos dará el tiempo o la diferencia de tiempo hasta el impacto de la bala y el tanque.
De acuerdo.
Así que creo que es suficiente alimento para la reflexión para este video.
Lo que haremos es que volveremos en el próximo vídeo y pondremos esto en código para que puedas
ver cómo funciona con el tanque y la bala.