‫Hola y bienvenido.
‫En esta lección, aprenderemos sobre los objetos y cómo podemos usar la funcionalidad de los objetos
‫y sus datos para comenzar a crear programas interesantes.
‫Sumerjámonos.
‫Entonces, comencemos esta lección introduciendo un nuevo concepto.
‫El concepto de objetos es absolutamente vital para muchos lenguajes de programación.
‫Entonces, un objeto es esencialmente algo en lo que quieres representar una cosa, algo como en un juego en el
‫que podrías tener un aventurero.
‫Es un objeto en tu mundo y podría tener algunos datos que representen lo que es.
‫Cosas como sus puntos de experiencia, por ejemplo, o tal vez su nivel.
‫Es un aventurero de nivel dos.
‫Cosas así son los datos que componen a un aventurero.
‫Pero eso no es todo lo que es un aventurero.
‫Un aventurero también tiene alguna funcionalidad, como la capacidad de disparar flechas, como poder
‫saltar, etc.
‫Sin embargo, hay otras cosas que pueden ser objetos.
‫Por ejemplo, podemos representar cosas en el mundo real, en la computadora, como el jugador, y podemos
‫almacenar propiedades relevantes para el jugador, como ¿el jugador está usando un controlador?
‫¿El jugador es el número uno o el número dos?
‫Ese tipo de datos y la funcionalidad relevante, como obtener sus entradas actuales.
‫Si mantienen presionada la barra espaciadora, por ejemplo, obtienen el nivel de habilidad del jugador, y luego
‫pueden tener objetos completamente abstractos, cosas como una lista.
‫Entonces podría tener una lista que tenga los elementos uno, dos, tres, cuatro.
‫Y es o tal vez podría tener cualquier artículo que te guste.
‫Los datos podrían cambiar, pero también podrían tener alguna funcionalidad, como eliminar el último elemento de la lista o agregarlo
‫al final de la lista.
‫Así que puedes ver que los objetos son muy, muy flexibles.
‫Se pueden utilizar para representar innumerables cosas diferentes.
‫Y notará que la funcionalidad en la parte inferior de estos objetos es en realidad lo que son
‫esos nodos o cuántos nodos hay en Blueprint.
‫Entonces comienzan a tener un poco de mapeo entre los objetos y la funcionalidad.
‫Bueno.
‫Así que hemos introducido un montón de conceptos nuevos que recapitulemos un poco.
‫Así que hemos dicho que los objetos son colecciones de datos y funcionalidad.
‫Es posible que no nos hayamos dado cuenta de que los actores son en realidad objetos.
‫Los actores son objetos que pueden ir en un nivel y puedes ver esto si entras en tu nivel, seleccionas
‫el cubo, puedes ver que hay un montón de detalles, pintar una gran cantidad de datos.
‫Y como veremos en un momento, también hay una gran cantidad de funciones en el formulario de nodo y en el plano.
‫Luego están los componentes.
‫Ahora los componentes no los hemos detallado antes, pero aquí están.
‫Son objetos que pueden ir sobre un actor, mientras que los actores van sobre el nivel, los componentes van sobre el propio
‫actor.
‫Entonces, con el Cubo seleccionado, puede ver en la parte superior del panel de detalles que existe este componente de
‫malla estática.
‫Si realmente hace clic en eso, verá que el panel de detalles obtiene un conjunto restringido de detalles.
‫No muestra todas las propiedades que están disponibles en el actor Cubo, sino solo el subconjunto de propiedades
‫que pertenecen al componente de malla estática, que es básicamente el componente responsable de decirnos
‫cómo dibujar un cubo.
‫Ahora, estos objetos a menudo pueden tener muchos más datos que estos, y eso significa
‫que su computadora puede volverse bastante difícil de manipular y, ciertamente, si tiene que copiar estos objetos.
‫Entonces, en lugar de hacer eso, usamos una estructura inteligente llamada referencia que es esencialmente solo una dirección
‫o ¿dónde debo ir para encontrar este objeto en la memoria de la computadora para no tener que mover el
‫objeto todo el tiempo?
‫Cubriremos un poco más sobre cómo funciona esto realmente en la memoria cuando lleguemos a C++, pero por ahora, es
‫suficiente saber que es solo una dirección.
‫Entonces, lo que podemos hacer, por ejemplo, sumerjámonos en Unreal.
‫Si estuviéramos en nuestro nivel principal y deseáramos usar alguna funcionalidad en nuestro cubo, entonces lo que puedo hacer es seleccionar el cubo en
‫la escena y luego puedo ir a mi plano de nivel y hacer clic derecho,
‫y luego puedo haga clic en crear una referencia a Cube y esto crea un nuevo nodo.
‫Ahora, ¿qué está haciendo eso?
‫Bueno, eso básicamente nos dice que esta es la dirección del Cubo.
‫Si quieres hacer algo con el cubo, aquí es donde lo encuentras.
‫Lo que sucede en Blueprint cuando ejecutas el juego es que va a buscar ese cubo.
‫Y luego puede hacer preguntas o usar la funcionalidad en el cubo, como decir, Oye, ¿dónde vive tu
‫componente de malla estática?
‫Y dice, está bien, los componentes de malla estática de allí.
‫Así que vamos y encontramos el componente de malla estática y luego podemos hacer preguntas sobre eso y ellos pueden decir:
‫Oye, ¿cómo te llamas?
‫Componente de malla estática.
‫Y el componente estático puede decir: Hola, me llamo Bob.
‫Y así es como podemos usar estas referencias y usar la funcionalidad de múltiples objetos diferentes para llegar
‫a donde queremos ir.
‫Ahora hemos dicho que una referencia es dónde encontrar un objeto.
‫Y ahora algo más que vale la pena señalar es un panel de datos.
‫¿Qué es un
‫TAPPIN Bueno, esta referencia de cubo en realidad tiene uno.
‫Esta pequeña cosa redonda azul en su lado derecho es un pin de datos.
‫De hecho, los hemos visto antes en los nodos de la cadena de impresión en el lado izquierdo, y son de
‫color púrpura.
‫¿Y en qué se diferencian de los otros tipos de pines que hemos visto, estos pines blancos?
‫Bueno, el pin de datos es la entrada o salida de datos para un nodo.
‫Entonces, un nodo, si está en el lado izquierdo, es la entrada, son los datos con los que puede trabajar el nodo.
‫Si está en el lado derecho, son los datos que produce Node.
‫Entonces, en el caso del cubo, este nodo produce una referencia al actor del cubo, luego los pines de ejecución.
‫En realidad, estos son los nombres de esos pines blancos para diferenciarlos de los pines de datos,
‫y siguen siendo cuando se ejecuta el nodo.
‫Entonces, los pines de datos son con lo que se ejecuta el nodo.
‫Los pines de ejecución son cuándo ejecutarlo.
‫Entonces, con toda esa información, hagamos un poco de uso de la funcionalidad de estos objetos.
‫Así que tenemos nuestra referencia de cubo.
‫Si arrastramos fuera del pin de referencia del cubo, puede usar toda la funcionalidad que tiene ese cubo.
‫Como dije, tenemos un componente en el cubo llamado componente de malla estática, y quiero seguir adelante
‫y conseguir una referencia a eso.
‫Así que buscaremos obtener componentes de malla estática.
‫Y el elemento más bajo para mí es obtener un componente de malla estática.
‫Puedo hacer clic en eso.
‫Obtenemos un nuevo nodo en el que la entrada es una referencia de cubo y la salida es una referencia a este.
‫Es un componente de malla estática.
‫Entonces, si nos alejamos de eso, podemos solicitar la funcionalidad del componente de
‫malla estática, como obtener el nombre para mostrar, y eso nos da la entrada de la referencia del componente de malla estática y usa su funcionalidad de
‫obtener el nombre para mostrar y luego regresa una cadena o un valor de texto que podemos imprimir usando el nodo de cadena
‫de impresión.
‫Entonces, podemos arrastrarlo y escribir cadena de impresión y luego podemos conectar las notas de ejecución para que se
‫ejecuten después de las otras dos cadenas de impresión en Begin Play, notará que algunos de estos nodos no tienen
‫pines de ejecución y podría ser confuso.
‫¿Cuándo se ejecutan?
‫Bueno, se ejecutan cuando los planos lo consideran apropiado, esencialmente cuando lo necesita un nodo que
‫tiene un pin de ejecución.
‫Entonces, si continuamos y presionamos reproducir, pueden ver que aparece con un componente cero de malla estática de cubo
‫de nombre, algo así como un programa de bits, tal vez no lo sea, no es Bob. Es un poco más complicado
‫que eso.
‫Pero pueden ver que esencialmente hemos codificado en esa cadena de preguntas que tenía en mi diapositiva.
‫Así que me gustaría desafiarlo a seguir adelante y obtener la masa de nuestros componentes de malla estática.
‫Lo hemos configurado en el pasado.
‫Si ingresa al nivel y observa el panel de detalles, puede ver que una de las propiedades
‫físicas era la masa y la configuramos como un dato en el componente de malla estática.
‫Bueno, si elimina el nodo obtener nombre para mostrar y arrastra el componente de malla estática,
‫debería poder buscar obtener masa y eso debería obtener la pieza de datos en el componente de malla estática y
‫ver si puede imprimir ese valor usando nuestro nodo de cadena de impresión pausa el video y prueba.
‫Bueno.
‫Bienvenido de nuevo.
‫Entonces, si volvemos al modelo, simplemente elimine nuestro nombre para mostrar, arrastre el componente de malla estática
‫y busque obtener masa.
‫Entonces podemos extraer ese nodo.
‫Aquí tenemos un valor de retorno y ese será nuestro valor de masa.
‫Puede ver si pasa el cursor sobre él, dice que devuelve la masa de este componente en kilogramos.
‫Y, por cierto, el valor de retorno solo significa los datos de salida y luego podemos arrastrar ese nodo a nuestra cadena de
‫entrada para la cadena de impresión.
‫Y ves que crea un pequeño nodo de conversión que está bien.
‫Se está convirtiendo de cualquier valor que sea en algo que la cadena de impresión aceptará.
‫Podemos seguir adelante y presionar reproducir y verá que obtenemos el valor de 1000, que sabemos que fue la masa que configuramos
‫o lo que sea que realmente configure.
‫Puede cambiar eso y ver que este valor también cambiará.
‫Así que eso es todo por esta conferencia.
‫Hemos aprendido sobre objetos y sus referencias y cómo usar nodos de funcionalidad en blueprints.