En este video vamos a hablar de ray casting.
Imagínate un juego de disparos favorito por ejemplo Jedi o colectivo o quirze.
Cualquiera que te ha gustado en esos juegos cómo sabes a qué le estás disparando.
O por ejemplo cuando le disparas a algo o estás dentro de una balacera o le das un j a alguien.
Cómo funciona eso.
Todo esto funciona con el uso del real casting tu arma y todos los efectos visuales que salen de ellas
son simplemente eso son efectos visuales.
En realidad no están determinando A qué le pegas dentro del juego.
Lo que sí determina es una línea invisible que va desde el centro de la pantalla a través de un mundo
3D que Cheka con qué colisionar en el ambiente en el que estás jugando a esa línea es a la que llamamos
urracas.
Entonces lo que hacemos es disparar urracas desde mi mira desde mi centro de la pantalla hacia mi objetivo
y lo que obtenemos de regreso es básicamente si hay algo obstruyendo el paso del huracán desde el punto
de partida hasta el punto hacia donde estoy apuntando.
Y si hay algo interponiéndose en el camino de ese rayo entonces eso es a lo que le estamos pegando y
es entonces dónde podemos tal vez cambiar el color de ese objeto o los podemos detectar que es un hacha.
Tal vez en ese punto vamos a aplicar una fuerza de una explosión.
Todo basado en lo que nos va a regresar la información que nos va a regresar ese rayo.
Habrá Broadcasting en Unity.
Es un tema que se puede considerar un poco más avanzado tal vez nivel intermedio pero no se puede llegar
a ser muy complicado pero voy a tratar de hacerlo lo más simplificado posible.
No debería ser tan complicado entonces en nuestro juego lo que pasa es si por ejemplo yo voy aquí y
Alito mi mi objeto Weapon otra vez.
Debemos empezar a pensar desde dónde queremos crear este ricas.
Bueno no lo vamos a hacer a partir del arma porque si te fijas bien el arma está apuntando a un ángulo
muy extraño y sólo lo vamos a usar para dar la ilusión de que estamos disparando desde ese lugar de
la pantalla.
Pero lo que sí vamos a hacer es crear ese rayo a partir del centro de la pantalla usando nuestra cámara.
Eso básicamente va a crear un rayo a través del mundo desde el centro de la pantalla.
Y si ese rayo intercepta con algo básicamente podemos extraer su nombre.
Podemos agregar algo de fuerza a ese objeto o lo que vamos a hacer en este curso es básicamente destruir
algunas botellas y algunas cajas.
Vamos a ver ahora cómo vamos a configurar helvéticas.
Lo primero que vamos a hacer es ir a la documentación y buscar que ray casting para saber cómo usarlo.
Entonces usando el pequeño icono del libro vamos a ir a nuestro browser y vamos a ver la documentación
vamos a cambiarnos a Happy y luego vamos a escribir aquí breakfast.
Aquí vas a encontrar algo llamado física ricas y lo que te va a hacer es emitir un rayo desde un punto
de origen en una dirección con una longitud basada en maquillistas hacia todos los coladeros que estén
en la escena.
Entonces con físicas heroicas aquí lo tenemos.
Cómo funciona.
Pues ricas es básicamente lo que emite el Rayo y la razón por la cual está dentro de una sentencia es
porque este método regresa.
Si le pego a algo por ejemplo este código si emite el Rayo y le pega algo que tenga cola y va a imprimir
debes Infonavit en este código particularmente lo que están haciendo es emitir un rayo desde la posición
del objeto hacia forward y aquí arriba declaran CF y.
Y va a tener una distancia de 10 metros.
Aquí por ejemplo si tienes diferentes tipos de armas puedes declarar la distancia que va a tener cada
tipo de arma.
Si por ejemplo estás usando una escopeta la distancia podría ser 5 pero si estás usando un rifle podría
hacer 30 horas.
Para nosotros realmente no va a importar tanto la distancia pero es bueno que se capacite y empiezas
a familiarizar con los conceptos del casting y ya lo había mencionado ricas.
Puede ser un poquito intimidante porque en realidad consta de dos partes.
Primero es emitir el Rayo y tienes que asignar una posición de origen para ese rayo y también está la
parte de obtener información a partir de ese rayo.
Entonces vamos a separar esto en dos partes lo primero va a ser emitir el Rayo a partir de la cámara
y eso es todo lo que voy a hacer simplemente quiero saber si le pegué a algo que tiene un colador.
Ahora cómo lo puedo hacer para emitir el Rayo desde mi cámara.
Por ejemplo si yo escribo física becas transforma tu posición desde mi Player no es lo que quiero hacer
lo que quiero hacer es precisamente emitir desde la Cámara vamos a ver aquí hay más ejemplos en la documentación.
Creo que por aquí abajo tiene un ejemplo justamente de eso.
Por ejemplo dicen aquí lo mismo que arriba usando Red punto y punto.
En el lugar de origen y dirección que nos fue súper útil.
Pero este ejemplo que está aquí es lo que queremos hacer nosotros.
Por ejemplo esto de aquí en lugar de usar Transform punto posición podríamos especificar una variable
de tipo de rey y tal vez puede ser un poco confuso ver aquí la variable Rey y Rey pero lo que estamos
haciendo aquí es básicamente decir dónde.
El origen de ese rayo en este caso es la cama.
Y entonces aquí están diciendo el Rey Rey es igual a cama apuntó humain Rey.
Y lo que están haciendo aquí es emitirã y ricas.
Desde la posición del manos.
Pero nosotros lo vamos a hacer desde el centro de la pantalla y eso es lo que te voy a enseñar porque
a final de cuentas este punto es un vector.
Usando un vector 3 también obtener el centro de mi pantalla y viendo un poco más la documentación que
ya tenemos suficiente información.
Vamos a regresar al editor de Unity y vamos a configurar nuestro rayo.
Lo primero que vamos a hacer es abrir nuestro script de Player y el objetivo aquí es emitir un rayo
desde el centro de la pantalla usando el tiempo en Uruguay.
Entonces vamos a ir a nuestro obp y lo que vamos a hacer es crear la lógica de disparar nuestra arma.
La forma en que vamos a disparar es presionando el clic en el botón izquierdo del mouse cada vez que
presiona el botón quiero emitir ese rayo.
Entonces cómo hago esto.
Bueno es relativamente sencillo.
Sólo tengo que decir si presiono clic emitió un rayo desde la pantalla en cámara desde el centro de
la Cámara.
Ahí es donde tengo que usar métodos greenpoint.
Entonces vamos Traduciendo esto a código entonces necesito una sentencia.
Queremos revisar nuestro click izquierdo del botón izquierdo del mouse pongo input Puntoticket mouse
botón Down y ese botón es el cero.
Si presiona este botón lo que lleva a emitir el Rayo desde el centro de mi cámara ahora cómo obtenemos
el centro de la cámara y cómo vamos a emitir ese rayo.
Cuando estábamos haciendo casting siempre empezamos obteniendo el ory el origen del Rayo desde donde
quiero que salga este radio donde quiero emitirlo.
Para eso voy a declarar una variable Rey y el apoyo moral como quiera en este caso para que haga más
sentido lo voy a llamar rey Young y lo igual acá me apunto main cámara .20 es una forma rápida de tener
acceso a la cámara principal y luego voy a poner punto y luego escribo escribe Pointe Rey.
Si te fijas el chip dice que regresa un rayo oyendo desde la cámara hacia un punto en la pantalla.
Si te fijas también aquí tenemos por ejemplo obvio que impongan o in tenemos varias opciones aquí vamos
a ver más de una específicamente la de Vigo pero por lo pronto usamos Skype y esto es lo que tenemos
que hacer es pasarle un vector 3 que se llama posición posesión posición básicamente es el centro de
mi pantalla y para obtener ese punto simplemente hacemos un poquito de matemáticas dentro y básicamente
lo que va a tener es un vector que va a contener el largo de mi pantalla y esa información la podemos
obtener podemos obtener información de cualquier pantalla que el usuario esté utilizando en ese momento.
Por ejemplo equipo Escribir escriben punto Wit y eso me va a regresar.
El ancho de la pantalla en la que se esté utilizando el juego y si quiero obtener justo el centro de
la pantalla pues simplemente Wit y lo divido entre dos.
Así obtenemos el punto central en X.
Lo siguiente que tengo que hacer es ahora que ya tengo el X es hacer exactamente lo mismo pero para
qué.
Pero para allá voy a utilizar el Punto G y ese lo divido entre dos y la acepta no importa la puedo dejar
en cero.
Y bueno vamos a salvar esto.
Bueno vamos a poner los dos en Flock por si las dudas vamos a ver está bien cerrado esto y me está dando
un error Pointe y la razón es que siempre que nosotros pasamos un vector 3 como por éste de posesión
necesitamos pasarlo como un nuevo vector 3D.
Nos hace falta el New vector 3.
Luego escribimos nuestros tres datos y Z y cerramos el paréntesis.
Ahora si ya tenemos nuestro origen del Rayo y este va a ser el centro de nuestra pantalla.
Ahora lo que nos falta es revisar si colisiona con algo y para eso voy a escribir esta sentencia y entonces
escribo y físicas Forecast.
Y esto es lo que básicamente va a provocar que se emita el Rayo y que empiece a revisar por colisiones
dentro de mi mundo 3D.
Y como puedes ver aquí en el TTIP tenemos más de una docena de opciones a elegir.
Para poder invocar este método y yo voy a utilizar.
Creo que es la primera.
O por ejemplo tenemos la número cinco que especifica un rayo especifica a su distancia máxima y luego
especifica un Layar más leyes más.
Es básicamente una máscara de invisibilidad por ejemplo puedes ignorar ciertas cosas que estén en ciertas
capas como por ejemplo cuando quieres que tus disparos no le afecten a tus compañeros.
Por ejemplo puedes poner una capa y simplemente ignorar el ricas de esa capa de igualarían más está
fuera del scoop de lo que estamos haciendo.
Pero sólo tienes que saber que son muy útiles.
Pero bueno entonces tenemos fe y creo que hay una que simplemente toma la dirección de ver tenemos por
ejemplo una que trae un regalo.
Esta va a ser la segunda la que solamente tiene un rey y una distancia.
Ahora si tengo físico ricas y el Rayo lo voy a pasar Orin y vamos a disparar al infinito para disparar
al infinito.
Estoy o tengo que utilizar Infinity.
Ahora si golpeamos algo con ese rayo que tenga un colador lo que vamos a hacer es escribir aquí debo
puntos Doc y voy a escribir ricas si vamos a salvar esto y voy a regresar a Unity.
Voy a correr el juego y ahora si estoy emitiendo un rayo desde el centro de mi pantalla y si te golpeo
algo con un colador debería de empezar.
Vamos a imprimirle el nombre en mi consola.
Si por ejemplo le apuntamos a pienso de inmediato va a imprimir aquí ricas.
Ahora viendo el tipo de este que está aquí me doy cuenta que no tiene un colador porque no está imprimiendo
su nombre vamos a darle un colador.
Así vamos a poder dispararle un rayo vamos a ver que le estamos apuntando a él.
Hacemos clic en el Chac mano aquí y luego hacemos clic Component le agregamos un box Heider y luego
editamos para que se queden más o menos del tamaño del personaje.
Salvamos la escena.
Voy a correr de nuevo el juego y ahora debería cuando el apuntemos al Txarrak debería de imprimir su
nombre y no esté funcionando porque es cuando presionas el click.
Olvide que la lógica era cuando presiona el botón Yo pensé que era solo apuntarle pero ahí lo tienen.
Le estoy golpeando al Changan estoy golpeando al piso y cualquier cosa que tenga un colador me va a
regresar.
El mensaje radical Santi.
Ahora lo que tenemos que hacer es determinar a qué le estoy pegando.
Recuerden que en nuestro juego solamente le puedo disparar a ciertas cosas.
Entonces aquí es cuando necesitamos obtener información del objeto al que le estoy pegando.
Eso nos lleva a la información del golpe que nos va a regresar el Rayo.
Pero eso lo vamos a ver en el siguiente video.