‫Hola y bienvenido.
‫En esta conferencia, vamos a configurar un capturador para que podamos agarrar nuestra estatua
‫de gárgola y llevarla con nosotros frente a nosotros.
‫Vamos a sumergirnos y ver cómo hacemos esto.
‫Así que es hora de que comencemos a llamar a esta asignación de componente de captura con una rotación.
‫Ahora, como dije antes, en realidad hay dos partes en esto.
‫Necesitamos agarrar el componente y luego también debemos establecer su ubicación de destino y rotación para
‫que se mueva.
‫Así que lo primero es lo primero.
‫En nuestra función de captura, necesitaremos obtener un puntero a nuestro identificador de física.
‫Así que voy a copiar la línea de Begin Play y voy a pasar al capturador y lo voy a
‫poner aquí.
‫Y para protegernos de que este sea nulo.
‫Bueno, ¿qué debería pasar?
‫Bueno, en realidad, no hay nada que queramos hacer.
‫Si no tenemos un mango de física, no podemos agarrar nada.
‫Así que podríamos poner todo el cuerpo de esta función de captura en una declaración if, pero eso puede parecer un
‫poco complicado.
‫Entonces, lo que podemos hacer en su lugar es lo que se conoce como un regreso anticipado.
‫Esencialmente, solo decimos si la física maneja.
‫Es igual a puntero nulo.
‫Tienes que poner un signo de doble igual aquí.
‫De lo contrario, es una tarea.
‫Entonces podemos bajar para hacer algunos aparatos ortopédicos y podemos simplemente poner un retorno aquí.
‫Entonces, lo que esto va a hacer es que si tenemos puntos nulos para el identificador de física, regresa
‫de inmediato y no ejecuta el resto de la función, por lo que es seguro usar la física
‫en el resto de la función. manejar como queramos.
‫Así que vamos a hacer eso.
‫Vamos a bajar a donde tenemos un golpe.
‫Creo que ya no necesitamos estos mensajes de registro.
‫Así que voy a eliminar las declaraciones alt.
‫Básicamente, voy a eliminar todo del cuerpo de la declaración F y usaremos nuestro
‫capturador.
‫Así que vamos a hacer que la física maneje los componentes de agarre de flecha en la ubicación con rotación.
‫Luego tenemos que proporcionarle un componente que estamos tratando de tomar.
‫Si echas un vistazo, lo que espera son tus componentes primitivos.
‫Veamos si tenemos algo por el estilo en nuestro resultado de éxito.
‫Simplemente vaya a la página de documentación y busque sus componentes primitivos y puede ver
‫que obtener componente devolverá el componente primitivo que fue golpeado.
‫Perfecto.
‫Eso es justo lo que necesitamos.
‫Así que tuvimos que buscar el resultado del éxito, no obtener componentes y eso nos dará lo que
‫queremos para el primer argumento.
‫Ahora, el siguiente es un nombre F para un arco.
‫Ahora, en realidad no queremos agarrar nada por un hueso en particular.
‫Este sería el caso si tuviéramos una malla esquelética, pero no la tenemos.
‫Tenemos una malla estática, por lo que solo usamos el nombre, no subrayamos ninguno.
‫Y en términos generales, con nombres F donde estamos hablando de huesos, esto sale bastante.
‫Si no quiere poner nada, use el nombre, no subraye ninguno.
‫Ahora necesitamos la ubicación en la que vamos a agarrarlo.
‫Y ya hemos dicho que hemos investigado esto.
‫Es el punto de impacto del punto del resultado del golpe y luego la rotación, la rotación actual de ese componente hará toda
‫la rotación actual del actor, lo que prefiera.
‫Así que el resultado de aciertos obtiene componentes.
‫Vamos a tomar esos resultados.
‫Obtenga la flecha de punto del componente porque es un puntero.
‫Obtener rotación de componentes como.
‫Así que ahora puede poner los paréntesis de cierre en una línea separada y pondré punto y coma para
‫terminar la declaración y eso debería ser efectivo para captar nuestros componentes.
‫Ahora, la siguiente parte del rompecabezas está en el componente de marca donde queremos usar nuevamente el controlador de física.
‫Así que voy a copiar el código por ahora, sabiendo que copiar el código en tres lugares es demasiado,
‫y es posible que queramos pensar en sacarlo a una función para que podamos reutilizarlo.
‫Pero los componentes de admisión van a usar un controlador de física.
‫Vamos a regresar temprano si no podemos conseguir un identificador de física.
‫Y luego lo que vamos a hacer es intentar establecer esas ubicaciones de destino.
‫Voy a hacer un controlador de física, un conjunto de flechas, una ubicación del objetivo y una rotación.
‫Y pensemos un poco sobre esto.
‫¿Qué tipo de ubicación objetivo nos podría interesar establecer?
‫Bueno, esencialmente, va a ser lo mismo que hicimos con el punto final.
‫Vamos a tomar nuestra ubicación actual, luego la moveremos hacia afuera en la dirección de avance una cierta
‫distancia.
‫Ahora, esto será configurable.
‫Podría usar la distancia máxima de agarre, pero creo que en la práctica se siente demasiado lejos.
‫Entonces, si vamos a nuestro Grandpa Dot H, vamos a crear una propiedad nueva llamada Edit Anywhere.
‫Y va a ser un flotador llamado distancia de espera.
‫Y voy a poner esto en 200.
‫Así que va a estar mucho más cerca del jugador.
‫Ahora, si vamos a obtener un CP, podemos acceder a nuestra función de toma e intentar crear este objetivo.
‫La ubicación tiene que ser un vector F llamado ubicación objetivo.
‫Vamos a hacer que sea igual a la ubicación de un componente más el vector de avance multiplicado por
‫la distancia de espera.
‫Entonces podemos usar eso como la ubicación de destino.
‫Ese va a ser nuestro primer argumento y luego necesitamos la rotación de objetivos.
‫Bueno, para eso, solo voy a usar la rotación del componente actual para que mientras miramos alrededor,
‫vamos a rotar el objeto con nuestra vista para que podamos simplemente obtener la rotación del componente para obtener la rotación
‫de el componente actual de la escena del capturador.
‫Es bueno poner un punto y coma al final de esa línea y volver a compilar y ver cómo funciona.
‫Ahora, después de compilar con éxito, seleccionemos la gárgola y asegurémonos de cambiar su
‫movilidad desde INICIO.
‫Piense en móvil porque lo necesitamos para poder moverse en respuesta a la física y asegurémonos de que esté
‫simulando la física.
‫Vayamos a la categoría de física y marquemos el botón simular física.
‫Vamos a darle al play e intentar retomarlo.
‫Por lo tanto, no sucede nada en este momento, pero parece estar atascado dentro del piso, por lo que no es
‫lo ideal.
‫Intentemos levantarlo un poco para que no quede atascado dentro del piso.
‫Déjalo caer al suelo así y ahora trata de levantarlo.
‫Eso parece haberse quedado atascado dentro del piso otra vez.
‫Así que vamos a intentarlo una segunda vez.
‫Bueno.
‫Así que es un poco poco confiable y, a veces, si lo atrapas de inmediato, atrapa
‫a la gárgola muy bien y puedes atraparla así.
‫Me doy cuenta de que la rotación no es correcta, y esto se debe a que usé algo incorrecto al agarrar el componente
‫de física.
‫Obtuve la rotación de la gárgola y ahora estamos tratando de mantener esa rotación que realmente
‫necesitaba usar era la rotación que estamos usando para tomar la rotación del capturador.
‫Así que sigamos adelante y cambiemos eso y recompilemos y presionemos reproducir de nuevo e intentemos capturarlo.
‫Ahí tienes
‫Esta vez lo agarré y obtuve la rotación correcta, la rotación exacta que tenía.
‫Y pueden ver que parece como si estuviera siendo agarrado de un resorte.
‫Si trato de empujarlo a través de una pared, trata de no atravesar la pared tanto como puede.
‫Eventualmente atraviesa la pared, pero está tratando de observar la física mientras lo muevo.
‫Así que vamos a desafiarte ahora a sacar una nueva función llamada obtener un identificador de física.
‫Va a ser privado.
‫Debería devolver una U.
‫Componente de control de física, y debería eliminar este código duplicado de necesidad de obtener el propietario y
‫encontrar el componente por clase.
‫También puede hacer que se ponga en contacto potencialmente, ver si puede y hacer que se registre.
‫Si no tenemos un componente de control de física, proporcione un registro de advertencia para que aparezca y sepamos que hemos
‫hecho algo mal.
‫Pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫En primer lugar, vamos a la cabecera del archivo donde vamos a poner esto en la sección privada.
‫Pero debajo de las propiedades, voy a hacer que devuelva algunas físicas, maneje los componentes y coloque un
‫asterisco aquí.
‫Ahora, debido a que estamos usando este tipo aquí en el encabezado, necesitamos tomar nuestro include y
‫cortarlo del capturador.
‫Entonces, lo incluido con respecto al identificador de física, debemos colocarlo en el punto de captura h
‫donde lo colocaremos encima de la h generada.
‫Eso es lo último que siempre está en nuestra cabeza de archivos.
‫¿Y por qué no necesitamos tenerlo también en el CP?
‫Bueno, porque estamos incluyendo Grab o H, así que cualquier cosa que pongamos, grab it o
‫H estará automáticamente en el CP para que podamos poner eso incluido allí.
‫Ahora podemos bajar a donde estamos definiendo esta función y llamarla el poder de manejar la física de los
‫paréntesis así.
‫Y creo que esto debería ser constante, no debería cambiar nada en nuestro capturador para llamar a esta función.
‫Solo ve al CP, ve al final donde voy a pegar en definición, voy a
‫pegar dos puntos en el frente y luego quitaré el punto y coma, agregando un par de llaves.
‫Y lo que queremos hacer es tomar el lugar donde tenemos este get en línea y simplemente vamos a eliminarlo y
‫reemplazarlo con una física de get.
‫Manejar como jabón.
‫Y luego, en el identificador de física de obtención, podemos simplemente devolver el componente de búsqueda de propietario de obtención por clase, etc.
‫Y ahora podemos reemplazar esto también donde lo estamos haciendo en el componente tic, estamos agarrando el controlador de
‫física.
‫Reemplacemos ese pequeño fragmento de código con obtener un identificador de física.
‫Ahora, es una pieza de código tan pequeña que casi no vale la pena, pero definitivamente vale la
‫pena por la práctica en este punto y por el hecho de que podríamos agregar algunos mensajes de registro ahora y comenzar a jugar.
‫En realidad, no necesitamos que la física se maneje en absoluto, así que solo voy a eliminar ese código allí.
‫Pero lo que voy a hacer es agregar un mensaje de registro.
‫Así que vamos a crear una variable para almacenar nuestro resultado aquí, porque si regresamos y luego tratamos de imprimir un mensaje
‫de registro, eso no funcionará.
‫Así que vamos a tener un nuevo componente de manejo de física llamado resultado.
‫Vamos a regresar de aquí y diremos que si el resultado es igual a un puntero nulo, entonces necesitamos un
‫nuevo registro con una advertencia o, de hecho, un error, de verdad.
‫Y vamos a decir que grabber requiere un nuevo componente de manejo de física.
‫Y luego después de la declaración if.
‫Así que esto sucederá.
‫Sea nulo o no, vamos a devolver el resultado.
‫Así que sigamos adelante y compilemos eso y verifiquemos que todo funcione.
‫Parece haber tenido éxito y puedo ver que debe estar funcionando porque cuando hice clic con el botón izquierdo en la escena,
‫obtengo que se dibujan los orbes azules o de depuración y no se dibujarían si no los tuviéramos.
‫La física maneja los componentes.
‫Buena cosa.
‫Así que en esta lección hemos podido agarrar nuestra estatua de gárgola usando nuestro capturador, aunque a veces puede
‫ser un poco poco confiable.
‫Y vamos a resolver esto en las próximas conferencias, así que los veré allí.