‫Bienvenido de nuevo.
‫Entonces, ya creamos un nuevo puntero de componente de cápsula y lo declaramos hacia adelante para que no tuviéramos que
‫incluir el archivo de encabezado en base a h.
‫Ahora es el momento de construir un subobjeto de componente de cápsula para nuestro POM base. Y una vez que lo
‫hagamos, configuraremos nuestro componente raíz para que sea la cápsula.
‫Entonces, ¿cómo construimos realmente un componente de tu cápsula?
‫El proceso es muy irreal.
‫El motor irreal específico del motor ha creado un subobjeto predeterminado.
‫Esta es una función de plantilla.
‫Una función de plantilla se adapta al tipo elegido para que podamos elegir un tipo en particular y crear un valor predeterminado.
‫El objeto secundario se adaptará a ese tipo.
‫Pasamos el tipo que deseamos construir para crear un subobjeto predeterminado.
‫A diferencia de una función regular, tiene estos paréntesis angulares.
‫Aquí es donde pasamos el tipo a construir.
‫Ahora, crear un subobjeto predeterminado también toma un argumento entre paréntesis.
‫Este será un nombre que asignaremos al subobjeto.
‫Esto es diferente al nombre de la variable y se pasa como un literal de cadena.
‫Así que aquí hay un ejemplo.
‫Digamos que deseamos crear un componente de malla estática u.
‫Entonces llamamos a crear un subobjeto predeterminado y terminamos los corchetes angulares que pasamos en el componente de malla estática tipo u
‫y entre paréntesis le damos un nombre.
‫Ahora ya ha visto que para String Literals, debe usar la macro de texto.
‫Así que estamos pasando nuestro literal de cadena al usar la macro de texto aquí.
‫Ahora, como mencioné, este es un nombre interno usado por Unreal Engine.
‫Hay otras funciones que usan esto.
‫Por ejemplo, hay una función llamada obtener subobjeto predeterminado por nombre.
‫Recupera un subobjeto que pertenece a un objeto en particular y puede llamarlo pasando un nombre en
‫particular y buscará el subobjeto con ese nombre elegido.
‫Entonces, la llamada de función general para crear un subobjeto predeterminado se ve así.
‫El tipo va entre paréntesis angulares y el nombre entre paréntesis.
‫Ahora, crear un subobjeto predeterminado devuelve la dirección del componente recién creado.
‫Entonces, en nuestro caso, si pasamos el uso del componente de malla estática como tipo, obtenemos la dirección de un
‫componente de malla estática y podemos almacenarla en un puntero, ya que los punteros almacenan direcciones de cosas.
‫Supongamos que creamos un puntero de componente de malla estático de uso llamado malla.
‫Luego, podemos tomar esa dirección devuelta por crear un subobjeto predeterminado y almacenar esa dirección en nuestro puntero
‫de malla.
‫Entonces, ahora que sabe cómo funciona la creación de subobjetos predeterminados, utilizará esto para construir un objeto
‫de componente de cápsula.
‫Vas a hacer esto en el constructor PON base, usa crear un subobjeto predeterminado para construir un componente
‫de cápsula, pasarlo en tu componente de cápsula y los corchetes angulares como el tipo para construir y pasar en el
‫colisionador de cápsula envuelto en una macro de texto entre paréntesis.
‫Pausa el video y agrega esto a base pont CP en el constructor ahora.
‫Bueno.
‫Así que estamos aquí en Bass Pond.
‫CP y nos gustaría construir un componente de cápsula.
‫Así que vamos a tomar nuestra variable de compensación de cápsula y asignar el valor devuelto por crear subobjeto
‫predeterminado.
‫Ahora, como hemos visto, esta función de plantilla tiene paréntesis angulares y paréntesis, y vimos que el tipo
‫va entre corchetes angulares, vamos a usar el componente de cápsula U.
‫Y para los paréntesis vamos a usar la macro de texto y vamos a llamar a este colisionador de cápsulas.
‫Y ahí vamos.
‫Ahora estamos usando su componente cápsula para construir un objeto de este tipo.
‫Y cuando usamos un tipo, incluimos su archivo de encabezado.
‫Ahora veamos qué sucede cuando intentamos compilar.
‫Ahora nuevamente, puede usar la codificación en vivo o puede compilar aquí en código VZ.
‫Voy a compilar aquí en código VTS a lo largo de esta sección.
‫Entonces, puede saber que cuando compilo, cerré el editor de Unreal Engine y solo estoy compilando desde
‫aquí.
‫Me gustaría ver el mensaje de error aquí y el código VTS ahora intentando compilar esto aquí.
‫Obtenemos un error diferente al que vimos en el último video.
‫Uso de componente de cápsula tipo u indefinido.
‫Esta vez estamos tratando de usar el tipo de componente de cápsula U aquí en el archivo CPP para construir un objeto.
‫Aquí está el código de error en caso de que desee buscar en Google este tipo particular de error para obtener más información.
‫Así que ahora hemos visto dos tipos diferentes de errores de compilación en esta sección del curso y sabemos la
‫causa de este error en particular.
‫No hemos incluido su componente de cápsula.
‫Ahora aquí está el componente de la cápsula U en la documentación de Unreal Engine y aquí está la inclusión que necesitamos
‫para este tipo.
‫Así que voy a copiar esto y pegarlo aquí en la parte superior de Base Pond CPP.
‫Ahora, si intento compilar nuevamente, la compilación es exitosa, no vemos errores.
‫Voy a cerrar la terminal ahora.
‫Así que hemos creado el componente cápsula.
‫Lo siguiente que me gustaría hacer es asegurarme de que el componente de la cápsula sea la raíz.
‫Ahora vimos cómo asignar un componente como raíz y planos haciendo clic y arrastrando en C++.
‫También es bastante fácil.
‫Simplemente tomamos esa variable de componente raíz y le asignamos el valor de cápsula comp.
‫Ahora hemos especificado que la composición de la cápsula debe ser el componente raíz.
‫Vamos a compilar esto de nuevo.
‫Y ahora, después de una compilación exitosa, me gustaría volver al editor.
‫Bueno.
‫Abrí el editor y voy a tomar mi clase base C++ y arrastrar una.
‫Y ahora mira esto.
‫Vemos un componente de cápsula.
‫Ahora en el mundo, fuera de línea.
‫Muestra que la base, que acabo de arrastrar, está seleccionada ahora justo encima de la búsqueda en el panel de
‫detalles.
‫Puedo arrastrar esto hacia abajo y ver todos los componentes en esta base --.
‫Y todo lo que vemos es esta composición de cápsula porque ese es el único componente que tiene.
‫Así que ahora hemos agregado nuestro componente de cápsula y vemos el resultado de eso cuando agregamos una instancia
‫de esta clase al mundo en el editor de Unreal Engine.
‫Entonces, en resumen, aprendimos cómo construir un componente de cápsula desde C++, y lo convertimos en el componente raíz al
‫asignar el valor de la variable del componente raíz a la composición de la cápsula.
‫En el siguiente video, agregaremos más componentes a nuestra base en la clase C++.
‫Te veré luego.