‫Hola y bienvenido.
‫En esta lección, vamos a acceder a los actores superpuestos en algo llamado matriz
‫para que podamos imprimir los actores que vemos dentro de este volumen completamente desde C++.
‫Vamos a sumergirnos y ver cómo se hace.
‫Así que como en las analogías anteriores, imaginemos que un tipo o una variable es una casilla en la que ponemos un valor.
‫Ahora bien, ¿qué sucede si no sabemos cuántos valores queremos almacenar?
‫Podríamos crear muchas variables.
‫Si supiéramos que íbamos a tener cinco, podríamos hacer cinco variables.
‫Pero, ¿y si tuviéramos algo que es impredeciblemente muchos, como la cantidad de actores que tenemos en nuestro nivel
‫A, o los actores que se superponen con un volumen de activación en particular?
‫En este caso, necesitamos usar un nuevo tipo de datos llamado matriz T en Unreal y básicamente una matriz T de
‫cierto tipo.
‫Aquí nuevamente, estamos viendo estos paréntesis angulares que, como dijimos anteriormente, compilan parámetros de tiempo.
‫Y esta vez estamos tomando, nuevamente, un tipo que nos dice qué tipo podemos almacenar en una matriz.
‫Una matriz es como una variable, excepto que tiene varias casillas y el número de casillas que tenemos puede
‫ser diferente.
‫Cuando estamos jugando un juego.
‫puede cambiar
‫Podemos agregar más o menos a medida que avanzamos en el juego, a medida que las cosas comienzan a superponerse con agregar más cuadros, a medida
‫que las cosas salen de la zona de superposición, las quitamos.
‫Y como dije, este es un parámetro dentro de estos.
‫Paréntesis angulares.
‫Entonces, podríamos tener una matriz T de enteros, por ejemplo, que almacenaría diferentes enteros en esos
‫cuadros.
‫Podríamos tener una matriz t de punteros de actores, y esto en realidad almacenaría los punteros en las cajas,
‫que señalarían a los actores en el mundo.
‫Y como puede ver, incluso podrían superponerse de modo que algunos de estos punteros apunten a los mismos actores.
‫Ahora practica eso no sería muy útil, pero ciertamente es posible.
‫Así que quiero revisar la documentación del componente primitivo you, porque lo
‫que estoy buscando aquí es una función llamada obtener actores superpuestos.
‫Y si echa un vistazo a la función de obtención de actores superpuestos, hay un par de versiones.
‫Pero el que más me interesa es el segundo.
‫No tiene valor de retorno.
‫Es un valor de retorno nulo.
‫Pero puede ver que el primer parámetro aquí es una matriz de punteros de actor con un ampersand al final, lo
‫que significa que todo esto es una referencia a una matriz t.
‫Ahora observe que no es una referencia constante.
‫Entonces podemos asumir que este parámetro es en realidad un parámetro de salida.
‫Nos da el resultado de los actores superpuestos y nos dice qué actores se superponen actualmente con
‫nuestros componentes primitivos.
‫Ahora sucede que nuestro componente de caja es un componente primitivo.
‫Entonces, nuestro componente desencadenante también es un componente de proyecto, y yo tendría acceso a esta función.
‫Aquí hay un segundo argumento, pero no tenemos que preocuparnos por eso porque en realidad tiene un
‫valor predeterminado si lo usamos.
‫Así que sigamos adelante e intentemos obtener y completar una matriz de punteros activos.
‫Vamos a entrar en el componente de trucos, CPP.
‫Vamos a bajar a los componentes de tick.
‫Y aquí vamos a crear una matriz t vacía que podemos llenar usando esta función.
‫Así que la sintaxis es matriz t entre corchetes angulares abiertos una estrella de actor para decir que tenemos una matriz t de punteros
‫de actor, cierre los corchetes angulares y luego podemos dar a esta variable el nombre de actores.
‫Luego llamaríamos para obtener actores superpuestos y pasaríamos la matriz de actores.
‫Ahora.
‫No sé por qué no solo pasan esto como un valor de retorno, pero.
‫Ahí tienes
‫Nos da la oportunidad de usar esos nuestros parámetros un poco más.
‫Ahora, eso está muy bien.
‫Tenemos algunos actores en una matriz.
‫Hay una longitud variable de ellos.
‫Puede haber bastantes.
‫Puede haber cero.
‫¿Qué hacemos con arreglos como este?
‫Bueno, podemos consultar cuántos elementos hay en la matriz.
‫Puede usar paréntesis de número de punto de matriz y eso puede devolver un número entero que le indica cuántos elementos hay en la
‫matriz.
‫Entonces, en esta matriz en particular, podríamos decir que hay cinco, y luego podemos acceder a los elementos
‫dentro de esa matriz usando estos corchetes.
‫Y luego el número que pasas entre corchetes te dice qué artículo obtener.
‫Y es una convención habitual en muchos lenguajes de programación que empecemos a contar desde cero en matrices.
‫Entonces, el elemento cero de una matriz es el primero, el elemento uno de una matriz es el segundo, etc.
‫Y así terminas con el último elemento siempre siendo uno menos que el número de elementos en la matriz.
‫Entonces, ¿cómo podemos usar este conocimiento?
‫Bueno, por ejemplo, solo podríamos imprimir los actores superpuestos si hay más de uno.
‫Entonces, ¿cómo haríamos esto?
‫Pondríamos una declaración if diciendo que si el número de puntos entre paréntesis de los actores es mayor que cero, entonces podemos hacer algo aquí,
‫como obtener acceso al elemento cero de nuestros actores porque sabemos que si es mayor que cero, debe
‫haber al menos menos un elemento allí.
‫Entonces, los elementos cero de esta matriz deben tener algo.
‫No podemos garantizar que el primer elemento, el único elemento de la matriz, tenga algo o que
‫los dos elementos tengan algo.
‫Tendríamos que verificar si tenemos suficientes elementos en la matriz para hacerlo, pero definitivamente sabemos que
‫aquí está el primero.
‫Así que vamos a desafiarte a que imprimas el primer actor superpuesto de esa matriz.
‫Use la matriz para obtener el puntero usando esos corchetes.
‫Luego, usará ese puntero para llamar, obtener actor, nombre o etiqueta, y luego
‫imprimirá eso.
‫Pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Entonces podemos obtener el puntero aquí usando estos corchetes.
‫Y luego voy a obtener el nombre directamente usando el operador de flecha y llamando a
‫obtener actor, nombre o etiqueta.
‫Y voy a poner eso en una variable de cadena F llamada nombre del actor.
‫Luego vamos a hacer un registro U, que llamaremos los dos puntos superpuestos.
‫Y luego por ciento s.
‫Y luego el segundo argumento aquí debería ser asterisco, nombre del actor.
‫Luego podemos recompilar, saltar a nuestro expediente de registro de salida en el diseño.
‫Entonces vamos a abrir el muro secreto de BP porque no quiero imprimir esta cadena que confunde
‫las cosas.
‫En Blueprint, estamos haciendo esto ahora desde C++, así que vayamos al nivel de la mazmorra, haga clic en reproducir.
‫Y obviamente nada se superpone a ese actor en este momento.
‫Entonces, ¿qué pasa si entramos y entramos?
‫Puede ver que comienza a imprimir instantáneamente, que estamos superponiendo el reproductor BP.
‫Cosas fantásticas.
‫¿Qué pasaría si fuéramos a buscar la gárgola en su lugar?
‫Llévalo a la alcoba, mételo y listo.
‫Dice que se superpone a la estatua de la gárgola.
‫Buena cosa.
‫Así que hemos aprendido cómo usar una matriz t para obtener una lista de actores y averiguar cuántas cosas hay
‫en esa lista y cómo obtener un elemento en particular de esa lista.
‫En la próxima lección, veremos algunas estructuras de programación que nos permiten
‫tratar con un número variable de cosas para realizar un número variable de tareas.
‫Te veré allá.